Краткий ответ: используйте переменную comint-completion-addsuffix
.
Более длинный ответ: поиск в Google для "окон завершения оболочки emacs" привел меня к http://www.gnu.org/software/emacs/windows/Sub_002dprocesses.html, в котором говорится, что переменная comint-completion-addsuffix
контролирует символы завершения. Установка на минусы \
и SPACE
делает то, что вы хотите. Вы можете сделать это с
- Mx настраиваемая переменная RET comint-завершение-добавление RET
- выберите меню значения
- выберите суффикс пару
- введите
\
после суффикса каталога:
- введите пробел после суффикса файла:
- выберите Сохранить для будущих сессий (или Сохранить для текущей сессии)
Делая это добавляет строку
'(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:
(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
.