Autocompletar dentro do Vim7
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:
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).
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

May 22nd, 2008 às 9:22 pm
[...] janelinha superior, pois mesmo após escolher a opção desejada ela fica aparecendo. No blog do Caio Moritz tem uma dica de como [...]