3

私には次のような単純なelisp関数があります。1つ目は現在の段落から塗りつぶしの区切りを削除し、2つ目は現在のドキュメントをループして最初の段落を順番に適用し、事実上、ドキュメントからすべての単一の改行を削除します。emacs22.3を使用する低スペックのPuppyLinuxボックスでは高速に実行されます(600ページのThomas Aquinasでは10秒)が、emacs21.3を搭載した強力なWindowsXPマシンにアクセスすると、同じドキュメントを実行するのにほぼ1時間かかります。emacs 21.3を搭載したWindowsマシンでも実行できるようにするにはどうすればよいですか?

(defun remove-line-breaks () 
  "Remove line endings in a paragraph."
  (interactive) 
  (let ((fill-column 90002000)) 
    (fill-paragraph nil)))

(defun remove-all-line-breaks ()
  "Remove all single line-breaks in a document"
  (interactive)
  (while (not (= (point) (buffer-end 1)))
       (remove-line-breaks)
       (next-line 1)))

私のかわいそうなエリスプを許してください。私はLispを学び、emacsの力を使い始めるのをとても楽しんでいますが、私はまだそれに慣れていません。

4

2 に答える 2

3

最初の試みとして、Windowsボックス用のEmacs 22.3をダウンロードしてインストールし、速度を比較する必要があります。

アップグレード後の速度差はそれほど大きくないはずです。

于 2008-12-04T15:35:20.850 に答える
0

おそらくそれはあなたがfill-columnに割り当てる大きな値です(彼らは80未満を示唆しています)。

于 2008-12-04T15:42:47.573 に答える