Como posso obter o emacs 24. * no windows para autocompletar caminhos em buffers de shell usando “\” ao invés de “/”?

4

Veja Como posso obter o emacs no Windows para autocompletar caminhos em buffers de shell usando "\" em vez de "/"?

Eu uso o emacs no windows 7, quando invoco o shell M-x, o emacs abre um shell DOS. O prompt exibe o diretório atual usando barras invertidas "\".

Se eu digitar um caminho, dizer "C: \ Te" e pressionar [TAB] para completar, o emacs completará o caminho para "C: / Temp /". Isso é ok para entrar no emacs, mas não para chamar DOS-Commands ou executar binários ou arquivos em lote no DOS.

Exemplo: o comando C: /Temp/a.bat falha. C: \ Temp \ a.bat é executado corretamente.

A situação no emacs 24. * parece ser ainda pior. Eu pensei que eu seria um usuário experiente do emacs, mas não consegui encontrar uma maneira de aplicar o patch chamado acima ao emacs 24. *. O modo comint parece ter mudado muito.

    
por Chris 01.10.2013 / 17:24

2 respostas

1

Tente este truque. Parece funcionar no emacs 24.5:

(defun win-file-name-completion-advice (res)
  (if (stringp res) (replace-regexp-in-string "/" "\\" res) res))
(advice-add 'comint-completion-file-name-table
            :filter-return #'win-file-name-completion-advice)

(defun win-command-completion-advice ()
  (let ((filename (comint-match-partial-filename)))
    (and filename (not (string-match "\\" filename)))))
(advice-add 'shell-command-completion
            :before-while #'win-command-completion-advice)
    
por 12.07.2015 / 19:24
-1

O tópico 258683 descreve uma solução apropriada:

  • no arquivo ~\.emacs
  • adicione a linha (setq comint-completion-addsuffix (quote ("\" . " ")))
por 10.12.2014 / 14:01