É possível ter nomes de funções de autocompletar vim, variáveis, etc. ao usá-lo para programar?

Muitos IDEs completam automaticamente nomes de funções, variáveis, nomes de métodos, etc. conforme o usuário digita. Os melhores completam os nomes com base na biblioteca interna da linguagem e também no que já foi definido em outros arquivos do mesmo programa.

Por exemplo, enquanto digito o seguinte Programa Python:

hungy = True def eatFood(food): pass if hungry: eatF 

a linha eatF mostraria automaticamente eatFood() como uma opção de preenchimento automático disponível.

O Vim tem esse recurso? Em caso afirmativo, como posso habilitá-lo?

Resposta

Existem muitos tipos diferentes de preenchimento automático no vim. Uma maneira pode ser usar o SuperTab . Isso fornece uma maneira de usar o preenchimento com tab mais ou menos a qualquer momento. Isso permitiria que você pressionasse Tab depois de digitar parcialmente a palavra para obter uma lista de preenchimento. Por exemplo, digitar eatF seguido de Tab para expandir para eatFood.

Observe : todas essas imagens estão vinculadas a gifs de exemplo em ação.

mg src = “https://i.stack.imgur.com/dVuOT.png” alt = “supertab completions” title = “Clique para ver um gif”>

O Vim tem outras opções excelentes. Você deve ler :h ins-completion para ver a variedade de opções de preenchimento integradas. Usando vim “s CtrlX Ctrl O , combinado com um plug-in compatível com python como jedi pode fornecer um sabor de conclusão. Jedi pode ser configurado para fornecer documentação sobre omni-completar (isto é o que CtrlX Ctrl O faz ) Em seguida, a documentação para os candidatos de conclusão apareceria em uma janela dividida.

mg src = “https://i.stack.imgur.com/etSIu.png” alt = “ctrlxctrlo completed” title = “Clique para ver um gif”>

Usar plug-ins semelhantes, mas com opções diferentes, leva a todos os tipos de comportamentos. É possível, por exemplo, não precisar solicitar o preenchimento automático (se é isso que você quer). Em vez disso, depois de digitar um número de letras (digamos, 2 ou 3) de uma palavra, um plugin pode tente oferecer de forma inteligente as conclusões possíveis em um menu.

mg src = “https://i.stack.imgur.com/gtNK0.png” alt = ” insira a descrição da imagem aqui “title =” Clique para ver um gif “>

Portanto, a resposta curta é sim! Mas o processo de configuração pode ser um pouco complicado. Eu penso nisso como uma etapa na longa escada de masterização do vim.

Comentários

  • Eu ‘ tentei todos eles e sempre volto ao SuperTab, ele ‘ é o menos intrusivo.
  • Eu também gosto muito do plug-in YouCompleteMe, pois sugere à medida que você digita e você pode escolher ou ignorar sugestões. Sim, visualmente é difícil de ignorar, mas é muito pouco intrusivo no meu fluxo de trabalho porque requi res menos pressionamentos de tecla.
  • Eu ‘ mudei as animações para serem ” ao clicar “, no sentido de que estão vinculados às animações GIF.
  • Não posso ‘ não usar o YouCompleteMe no meu computador de trabalho porque não ‘ não tenha root para instalar as dependências, o SuperTab é de longe a próxima melhor escolha.
  • @mixedmath No meu caso, o superTab não ‘ t funciona.

Resposta

Tal funcionalidade – isto é, pesquisar o arquivo atual ( e todos os arquivos abertos) para preenchimento automático, deve ser habilitado por padrão com Ctrl+P:

captura de tela do preenchimento automático em uso

Você pode ir para a sugestão de extensão n com Ctrl+N, a p sugestão original com Ctrl+P e selecione-o digitando qualquer letra (que será anexada logo após a sugestão).

Comentários

  • Para o editor (Jasper): É mais provável que eu queira escrever novamente algo que escrevi recentemente, não algo que ‘ escreverei no futuro ou que esteja no início do Arquivo. Portanto, ^P é IMHO mais natural. Caso contrário, obrigado pela edição (espero ter clicado no botão certo e você obteve seu +2).
  • Sim, recebi aqueles pontos imaginários de internet 🙂 Sempre pensei que a lista de sugestões seria classificada em ordem alfabética. ..
  • @Jasper ordem de aparência é (pelo menos para mim, certamente, veja também acima: world,word,wood e não o contrário).Portanto, ^P é o último preenchimento usado, o que é muito útil (raramente vou além de 3 itens na lista, mesmo em um arquivo longo).
  • protip : inoremap <C-Space> <C-N>

Resposta

O Vim tem suporte para conclusão nativamente . Você pode ler sobre as várias conclusões diferentes que o Vim oferece suporte em :h ins-completion.

.

Em geral, para todos os propósitos que encontrei, ins-completações são suficientes para meu gosto , no entanto, existem alguns plug-ins de conclusão que agregam mais valor além do que o ins-completions oferece. NeoComplete , YCM (YouCompleteMe) são alguns para o mesmo. Eles são mais avançados no sentido de que tentam combinar diferentes tipos de conclusões com mais precisão e também possuem mecanismos de cache avançados, portanto, tendem a ser mais rápidos. O YCM chega ao ponto de trabalhar com compiladores / utilitários externos para fornecer um IntelliSense melhor.

Resposta

Sim, scripts de preenchimento automático para o vim existir. A “melhor” escolha depende da sua linguagem de programação. Como seu código de exemplo é Python, sugiro que dê uma olhada em Jedi . Construir em cima disso existe You complete me , que também tem suporte para outros idiomas, mas às vezes é visto como muito grande. Para outros idiomas, você pode navegar pelo longo conjunto em scripts vim .

Resposta

No modo de inserção, digite os primeiros dois caracteres de uma palavra e pressione:

Ctrl-N to insert the next matching word; or Ctrl-P to insert the previous matching word. 

Isso é particularmente útil ao inserir o nomes de variáveis em um programa.

A opção “complete” controla onde as palavras-chave são pesquisadas (inclui arquivos, arquivos de tag, buffers e mais).

A opção “completeopt” controla como a conclusão ocorre (por exemplo, se um menu é mostrado).

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *