Como faço para completar caminhos de arquivos no emacs?

13

Digamos, por exemplo, que estou editando um arquivo de configuração e quero digitar um caminho. Existe um plugin para o emacs que permite completar um caminho de arquivo nesse buffer? Eu procurei por isso e há como um plug-in de conclusão bazillion lá fora.

    
por Jason Baker 07.11.2009 / 16:20

5 respostas

9

Teste Hippie Expand , que como uma de suas possibilidades tem ' 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.

Você também pode escrever um wrapper personalizado que faça apenas 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)))
    
por 10.11.2009 / 21:10
13

Eu geralmente digito Ctrl - X Ctrl - F como se eu abrisse um arquivo, mas em vez de pressionando RET Pressiono Ctrl - A Ctrl - K Ctrl - G para copiar o caminho e colá-lo no buffer que eu estava editando com Ctrl - Y .

Eu não preciso disso com bastante frequência, mas se eu realmente quisesse uma solução melhor, eu definitivamente usaria a solução da Trey Jackson usando hippie-expand . Pensei em como hippie-expand poderia ser a melhor maneira de fazer isso quando respondi pela primeira vez, mas eu não sabia e estava com preguiça de procurar, então eu apenas escrevi o que eu faço.

    
por 07.11.2009 / 18:31
2

A baunilha, fora da caixa

M-x comint-dynamic-complete-filename

funciona fora do modo comint. Claro, você pode usar a expansão dinâmica do minibuffer para usar menos pressionamentos de teclas para chegar a ele (por exemplo, Mx comi nt- dy namic- c omplete -f ilename). Ou, se você for usá-lo com frequência, poderá vinculá-lo a uma sequência de teclas de sua escolha usando global-set-key .

    
por 25.12.2014 / 21:50
1

Também é possível fazer isso usando o autocompletar da empresa se o company-files estiver na lista de company-backends (padrão na minha instalação) ou explicitamente chamando company-files .

    
por 28.06.2017 / 11:21
0

Recentemente descobri 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 apresentam grandes deficiências.

Confira o preenchimento automático do Tomo ( link ) que foi fácil instalar Linux) e abrange muitas necessidades de preenchimento automático de uma forma moderna .

É claro que o seu pedido de preenchimento de nomes de arquivos no buffer está perfeitamente coberto.

Finalmente, se acontecer de você também fazer Ruby, certifique-se de não perder sua extensão RSense ; novamente, o melhor de seu tipo.

    
por 19.08.2010 / 14:11