私はemacsを使用してLinux、Windows、OSXで作業していますが、Windowsの下のシェルバッファーに関する1つの厄介な問題を除いて、すべて問題ありません。
ファイル名の自動補完は(標準のウィンドウよりも優れていますが)うまく機能しますが、ディレクトリのスラッシュ区切り記号を使用してパスを生成するため、まったく役に立ちません。これはWindowsでは機能しないので、タブを避けてコマンドプロンプトにすべてを入力するように強制するか、emacsをあきらめてWindowsの壊れたコマンドウィンドウを使用する必要があります(たとえば、コピーすることさえ難しい場合) n分割線の問題のため、合理的に貼り付けます)。
Windowsのパス名の補完に「/」の代わりに「\」を使用するようにemacsに指示する方法はありますか?
簡単な答え:変数comint-completion-addsuffix
を使用します。
長い答え:「emacsシェル完了ウィンドウ」をグーグルで検索すると、 http://www.gnu.org/software/emacs/windows/Sub_002dprocesses.html になりました。これは、変数comint-completion-addsuffix
を示しています。補完文字を制御します。 \
とSPACE
の短所に設定すると、必要な処理が実行されます。あなたはこれを行うことができます
\
を入力します。それを行うと、行が追加されます
'(comint-completion-addsuffix (quote ("\\" . " ")))
〜/ .emacsファイルの正しい場所に移動します。
(Emacs 22.3でテスト済み。)
Emacs 23.3では、先頭の円記号がスラッシュに変更されているというコメントの意味がわかります。 comint-dynamic-complete-filename
が壊れているため、説明except that it won't change parts of the filename already entered in the buffer
の一部が正しくありません。
23.3のLISP/comint.elを22.3に置き換えることはうまくいくようです。そのファイルの3062行目から始まる3行を置き換えます。
(delete-region filename-beg filename-end)
(if filedir (insert (comint-quote-filename filedir)))
(insert (comint-quote-filename (directory-file-name completion)))
これらの行で(22.3から):
(insert (comint-quote-filename
(substring (directory-file-name completion)
(length filenondir))))
M-x byte-recompile-directory
を実行します。
(setq comint-completion-addsuffix (quote ("\\" . " ")))
私の~\.emacs
私のためにトリックをしました。