Resposta curta: use a variável comint-completion-addsuffix
.
Resposta mais longa: pesquisando "janelas de conclusão de shell do emacs" me levou ao link , que diz que a variável comint-completion-addsuffix
controla os caracteres de conclusão. Configurá-lo para os contras de \
e SPACE
faz o que você deseja. Você pode fazer isso com
- M-x customizar-variável RET comint-completion-addsuffix RET
- selecione o menu Valor
- selecione o par de sufixos
- insira
\
após o sufixo de diretório: - insira um caractere de espaço após o sufixo Arquivo:
- selecione Salvar para sessões futuras (ou Salvar para a sessão atual)
Isso adiciona a linha
'(comint-completion-addsuffix (quote ("\" . " ")))
para o local correto em seu arquivo ~ / .emacs.
(testado com o Emacs 22.3.)
Atualização:
Vejo o que você quer dizer no comentário que, com o Emacs 23.3, a barra invertida principal foi alterada para uma barra. comint-dynamic-complete-filename
foi quebrado, então a parte da descrição except that it won't change parts of the filename already entered in the buffer
não é mais verdadeira.
Substituir o lisp / comint.el do 23.3 por 22.3 parece funcionar. O mesmo acontece com a substituição das três linhas desse arquivo, iniciando na linha 3062:
(delete-region filename-beg filename-end)
(if filedir (insert (comint-quote-filename filedir)))
(insert (comint-quote-filename (directory-file-name completion)))
com estas linhas (a partir de 22.3):
(insert (comint-quote-filename
(substring (directory-file-name completion)
(length filenondir))))
e fazendo M-x byte-recompile-directory
.