Digamos, por exemplo, que estou editando um arquivo de configuração e quero digitar um caminho. Existe um plugin para o emacs que permite concluir um caminho de arquivo nesse buffer? Eu procurei por isso e existem vários plugins de conclusão por aí.
Digamos, por exemplo, que estou editando um arquivo de configuração e quero digitar um caminho. Existe um plugin para o emacs que permite concluir um caminho de arquivo nesse buffer? Eu procurei por isso e existem vários plugins de conclusão por aí.
Respostas:
Experimente o Hippie Expand , que como uma de suas possibilidades ' try-complete-file-name
. Você pode alterar a ordem e a lista de funções de expansão que o hippie expand usará para favorecer a expansão do nome do arquivo.
Ou você pode até escrever um wrapper personalizado que apenas faça a expansão do nome do arquivo. Algo como:
(global-set-key (kbd "C-M-/") 'my-expand-file-name-at-point)
(defun my-expand-file-name-at-point ()
"Use hippie-expand to expand the filename"
(interactive)
(let ((hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name)))
(call-interactively 'hippie-expand)))
Normalmente, digito Ctrl- X Ctrl- Fcomo abriria um arquivo, mas, em vez de pressionar RET, pressione Ctrl- A Ctrl- K Ctrl- Gpara copiar o caminho e colá-lo no buffer que estava editando com Ctrl- Y.
Não preciso disso com frequência suficiente, mas se realmente quisesse uma solução melhor, definitivamente usaria a solução de Trey Jackson hippie-expand
. Pensei em como hippie-expand
poderia ser uma maneira melhor de fazer isso ao responder pela primeira vez, mas não sabia e estava com preguiça de procurar, então acabei de escrever o que faço.
A baunilha, pronta para uso
M-x comint-dynamic-complete-filename
funciona fora do modo de comint. Claro, você pode usar a expansão dinâmica do minibuffer usar menos teclas para chegar a ele (por exemplo, Mx comi nt- dy namic- c omplete -f ilename). Ou, se você o usar com frequência, poderá vinculá-lo a uma sequência de teclas de sua escolha usando global-set-key
.
Também é possível fazer isso usando o preenchimento automático da empresa se ele company-files
estiver na lista de company-backends
(padrão na minha instalação) ou explicitamente ligando company-files
.
Descobri recentemente os trabalhos de Tomohiro Matsuyama (@ m2ym) e fiquei muito impressionado com a qualidade de seus pacotes emacs.
Eu lutei com a maioria das extensões de preenchimento automático e descobri que todas elas têm grandes falhas.
Confira o preenchimento automático do Tomo ( http://auto-complete.org/doc/manual.html ). Foi muito fácil de instalar (eu estou no Linux) e cobre muitas necessidades de preenchimento automático em um ambiente moderno. maneira .
Obviamente, sua solicitação para conclusão de nomes de arquivos no buffer é perfeitamente coberta.
Finalmente, se você também usa Ruby, não perca a extensão do RSense ; novamente, o melhor de seu tipo.
find-file
por exemplo). Deseja um comportamento semelhante em um buffer de conteúdo?