Autocompletar dentro do Vim7

Em: 04/01/2008 Tags: Referencie do seu blog (Trackback)

Os usuários de IDEs famosas como Eclipse sabem que o auto-completar do código-fonte é uma funcionalidade que pode aumentar bastante a produtividade do programador. Como alcançar isso para a sua linguagem de programação favorita dentro do Vim?

Se você está no Vim7, então você não precisa configurar nada: ele já tem essa capacidade, por padrão. Este exemplo utiliza o Python como linguagem. Abra o arquivo a.py dentro do Vim e digite o seguinte:

str = 'lala'
str.

Com o cursor após o último caracter (o ponto), e no modo de inserção, basta digitar Ctrl^x, seguido de Ctrl^O e você deve ver o seguinte:

Autocompletar dentro do Vim7: preview

O que aconteceu? Em primeiro lugar o Vim abriu uma janela pop up com todos as funções/propriedades dos objetos String. Mais que isso, sua tela foi quebrada horizontalmente em duas, e na parte superior o Vim abriu um arquivo que tem a documentação da função sobre o qual o seu cursor repousa (replace(), na imagem).

O que não gostei nessa solução do Vim é que aquela janelinha superior que foi aberta automaticamente não é fechada quando seleciono a função que quero (veja imagem abaixo).

Autocompletar dentro do Vim7: após seleção do item

Não que eu não saiba fechá-la, mas dá muito trabalho (Esc, seguido de Ctrl^w, seguido de k, seguido de :q). Se você também é preguiçoso, talvez queira dizer ao Vim que ele não deve abrir essa janela superior com a descrição do método, e apenas mostrar o menu pop up. Para isso adicione a seguinte linha ao seu .vimrc:

set completeopt=menu 

Essa opção aceita os seguintes valores:

  • menu
  • menuone
  • longest
  • preview

Você pode combinar esses valores, se separá-los por vírgula. Exemplo:

set completeopt=menu,menuone,longest,preview

A combinação default é:

set completeopt=menu,preview

Consulte a documentação do Vim referente a esse comando para saber o que as outras opções significam (digite dentro do Vim, em modo de edição):

:help completeopt

Só testando todos esses valores para a opção completeopt você poderá saber as vantagens e desvantagens de cada um, e qual é o mais adequado pra você. Como descobri tudo isso há poucos minutos ainda não fiz a minha escolha.

Para finalizar: de acordo com a documentação (:help new-omni-completion), as seguintes linguagens são suportadas:

  • C
  • (X)HTML com CSS
  • PHP
  • Python
  • Ruby
  • SQL
  • XML
  • Qualquer linguagem com coloração de sintaxe

Artigos relacionados:

Uma resposta para “Autocompletar dentro do Vim7”

  1. autocomplete no vim7 | cavedon.net - programação e tecnologias abertas disse:

    [...] janelinha superior, pois mesmo após escolher a opção desejada ela fica aparecendo. No blog do Caio Moritz tem uma dica de como [...]

Escreva um comentário (utilize o formato Markdown)