Preenchimento automático no Vim


258

Após um longo "treinamento", finalmente mudei para o Vim; mas tenho alguns problemas com o preenchimento automático. Como posso ter uma sugestão de código enquanto digito?

Eu normalmente desenvolvo PHP, Ruby, HTML, C e CSS.

Respostas:


144

Você pode usar um plug-in como o AutoComplPop para obter o preenchimento automático de código enquanto digita.

2015 Edit: Eu pessoalmente uso o YouCompleteMe agora.


10
Isto é altamente recomendado. Não é necessário digitar CX CO, CP ou CN.
Amjith

Eu tentei isso, mas parece não funciona .. provavelmente há um conflito com outros scripts ..
diegocstn

1
você está colocando os arquivos nos diretórios especificados em ~ / .vim?
Michaelmichael #

1
@dieguitoweb O ACP não funciona com todos os tipos de arquivos por padrão. Você precisa "hackear" para que funcione com JavaScript, ActionScript e PHP. Aqui eu explico como faço. E aqui está outra dica para PHP.
Romainl #

agora funciona :) todos os arquivos já estavam nos diretórios certos .. Substituí o script apenas por um novo download do repositório git e agora está tudo bem. muito obrigado #
3160 diegocstn

438

Use Ctrl- Npara obter uma lista de sugestões de palavras enquanto estiver no modo de inserção. Digite :help i_CTRL-Npara ver a documentação do Vim sobre essa funcionalidade.

Aqui está um exemplo de importação do dicionário Python para o Vim.


15
obrigado, isso é ótimo, mas como posso ter essa lista automaticamente sem pressionar <ctrl + N>?
31411 diegocstn

5
Foi o que michaelmichael estava lhe dizendo com o plugin que ele mencionou. Além disso, você pode olhar para a SuperTab.
projecktzero

4
Para suporte ao CSS, adicione o traço para o preenchimento automático integrado adicionando 'set iskeyword + = -' ao seu .vimrc
mahalie

3
Esta é a maneira mais abrangente e nativa de fazê-lo :-) #
314

5
@ Hi-Angel, a parte 'auto' é que ela determina automaticamente as opções para a conclusão de uma palavra e compete automaticamente com a palavra na seleção de uma opção.
CJBS #

26

Se você estiver usando o VIM versão 8 ou superior, digite Ctrl + nou Ctrl + p.


11

Você pode começar da omnifuncconfiguração interna.

Apenas coloque:

filetype plugin on
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType ruby,eruby setl ofu=rubycomplete#Complete
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType c setl ofu=ccomplete#CompleteCpp
au FileType css setl ofu=csscomplete#CompleteCSS

na parte inferior do seu .vimrc, em seguida, digite <Ctrl-X><Ctrl-O>no modo de inserção.

Eu sempre confio nessa conclusão do CSS.


o que setlsignifica Obrigado.
qed

Ok, entendi, significa setlocal. Mas por que precisamos de local aqui?
qed

Veja como isso o incomoda quando você abre outro arquivo no mesmo buffer.
ernix

2
@ernix A partir do seu link: Um buffer no Vim é ... uma instância aberta de um arquivo ... Eu sei sobre buffers, janelas e guias; mas não sei como abrir outro arquivo no mesmo buffer. Parece-me que quando você abre um arquivo, ele sempre será aberto em um novo buffer e o adicionará à lista de buffers. Sei que existem outras maneiras de usar os buffers, como a lista de correções rápidas, mas não sabia como alterar o arquivo em um buffer. :h buffersdiz: Um buffer é um arquivo carregado na memória para edição. Dito isto, só uso seriamente o Vim há 3 meses. e certamente estou aberto à correção.
19418 JakeD

1
@JakeD Ah sim. Você está certo. Tomei "instância", que significa o caminho errado. Entendi mal que você estava falando de processos com diferentes IDs. Desculpe, esqueça o que eu disse.
ernix 19/07/19


6

Recentemente, descobri um projeto chamado OniVim , que é um front-end baseado em elétrons para o NeoVim que vem com um preenchimento automático muito bom para vários idiomas, e como é basicamente apenas um invólucro do NeoVim, você tem todo o poder do vim à sua disposição se a GUI não atender às suas necessidades. Ainda está em desenvolvimento inicial, mas está melhorando rapidamente e há uma comunidade realmente ativa em torno dele. Uso o vim há mais de 10 anos e comecei a testar a Oni há algumas semanas e, embora tenha alguns bugs aqui e ali, não ficou no meu caminho. Eu o recomendaria fortemente aos novos usuários do vim que ainda estão recebendo seus dedos do vim!

insira a descrição da imagem aqui

OniVim: https://www.onivim.io/


32
para mim o ponto inteiro do vim está usando o terminal ... se eu queria usar um aplicativo de elétrons eu só vou usar vscode com uma extensão vim ..
Mohamed Benkedadra

2
@MohamedBenkedadra Mas isso realmente lhe daria todo o poder do Vim? Por acaso, sou um grande fã do seu sistema de padrões de busca e substituição, e ficaria agradavelmente surpreso se um plugin de emulação de vim suportasse isso.
SilverWolf - Restabelece Monica

3

Eu uso o neocomplcache há cerca de meio ano. É um plug-in que coleta um cache de palavras em todos os seus buffers e, em seguida, fornece-os para você concluir automaticamente.

Há uma variedade de capturas de tela na página do projeto no link anterior. O Neocomplcache também possui várias opções de configuração, das quais também existem exemplos básicos na página do projeto.

Se você precisar de mais profundidade, consulte a seção relevante no meu vimrc - basta procurar a palavra neocomplcache.


1

Aqui está o link ! para PHP.

pressione as teclas Ctrl + x seguidas pelas teclas Ctrl + o enquanto escreve algumas funções do PHP.

Obrigado a Oseems Solutions pelo tutorial


1

Se você deseja apenas o preenchimento automático a partir do cache de seus buffers atuais, a supertab é mais fácil de instalar do que o neocompleto , pode funcionar no vim pré-instalado no Mac, sem a necessidade do MacVim.

Você pode verificar outras alternativas em vim awesome .


0

Para PHP, Padawan com Deoplete são ótimas soluções para ter um preenchimento automático robusto de PHP no Neovim. Eu tentei muitas coisas e Padawan funciona como um encanto!

Para o Vim, você pode usar o Neocomplete vez do Deoplete.

Eu escrevi um artigo sobre como criar um IDE Vim PHP se alguém estiver interessado. Claro que Padawan faz parte disso.


0

Outra opção é coc.nvim .

É realmente rápido e a conclusão é ótima, pois usa o intellisense da mesma forma que o VScode. Ele também possui recursos de fiapos. Então, mostra que você pode ter um bug. Ele suporta uma infinidade de idiomas.

Pode demorar um pouco para instalar e configurar, mas acho que é o melhor mecanismo de preenchimento automático para o vim por aí.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.