Posso adicionar um conjunto de palavras ao vocabulário de preenchimento automático do Vim?

13

No Vim, estou ciente de usar CTRL-n e CTRL-p para preencher automaticamente as palavras encontradas no documento. Isso é ótimo para promover o uso de métodos descritivos e nomes de variáveis.

Eu gostaria de adicionar um conjunto de palavras para o preenchimento automático que, muitas vezes, mas não estão no arquivo de origem que estou editando no momento. Minha solução atual é apenas adicionar a lista de palavras a um comentário na parte inferior do meu arquivo de modelo, mas isso parece um pouco inútil e desagradável.

Existe uma maneira de adicionar palavras ao vocabulário de preenchimento automático do Vim que seria acessível a todas as sessões do Vim?

madh
fonte

Respostas:

10

Você pode usar abreviações no seu ~/.vimrcarquivo por apenas algumas palavras:

: abbr supe superusuário
: abbr autoc preenchimento automático
: abbr que question

Eles serão completados automaticamente depois de pressionar Spaceou Enter. Então, se você digitou que, pressionou Spaceou Enterele terminaria a palavra "pergunta" para você.

Se você está adicionando muito e deseja esta interface:

texto alternativo

Você pode usar dicionários . Simplesmente configure um arquivo com uma palavra em cada linha e, em seu .vimrc, adicione uma linha como esta:

set dictionary+=/home/john/dict.txt

Substitua o caminho pela localização do seu arquivo de dicionário. Você pode usar Ctrl+ xe Ctrl+ kpara exibir as sugestões. Ctrl+ ne Ctrl+ ppara selecionar a próxima / anterior dentre várias seleções.

John T
fonte
1
fantástico! eu vou usar dicionários!
Madh
Isso funcionou! Eu não entendo esse menu bonito. Estou usando o VIM 6.3.82, que não é a versão mais recente.
Madh
Ah ... a atualização ajuda? Você precisa pressionar a sequência Ctrl-x, Ctrl-k para abrir o menu. Fico feliz em ajudar :):
T John
Esta é a maneira correta.
às.
Apenas verifiquei se isso funciona no VIM 7.2. Obrigado novamente!
Madh
2

As "fontes" para o preenchimento automático regular (o que você obtém de Ctrl+ N) são obtidas da completeopção (consulte :h 'complete') O padrão é

complete=.,w,b,u,t

que significa

  1. . varre o buffer atual
  2. w digitalizar buffers de outras janelas
  3. b varre outros buffers carregados que estão na lista de buffers
  4. u varre os buffers descarregados que estão na lista de buffers
  5. t conclusão da tag

você pode adicionar seu próprio dicionário com

set complete+=k~/.vim/keywords.txt

e adicione as palavras-chave uma por linha ~/.vim/keywords.txt. Dessa forma, você pode acessar as conclusões diretamente com Ctrl+ N(não há necessidade de chamar explicitamente a conclusão do dicionário com Ctrl+ X, Ctrl+ K). Achei isso especialmente útil para a conclusão de códigos em que tenho todos os nomes de funções usados ​​comuns emkeywords.txt

ecerulm
fonte