Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Ubuntu 10.04
Por ChacalRN
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Vim: Autocompletar com TAB
Linux user
Publicado por Sandro Marcell em 02/09/2010

Login: SMarcell, 534906 pontos | Blog: http://my.opera.com/smarcell/blog/
[ Hits: 3041 ]

Vim: Autocompletar com TAB

O Vim usa o conjunto de teclas 'Ctrl+n' e 'Ctrl+p' para o recurso da autocompletação de palavras, porém quem trabalha direto com linha de comando às vezes acaba sentindo falta da tecla 'Tab' fazendo esse serviço. Pois bem, para tornar isso possível, edite seu '.vimrc' e adicione a seguinte função:

Obs.: O pacote Vim deve estar instalado de forma completa em sua distro.

function AutoCompletar(direcao)
   let posicao = col(".") - 1
   if posicao && getline(".")[posicao - 1] !~ '\k'
      return "\<Tab>"
   elseif a:direcao == "avancar"
      return "\<C-n>"
   else
      return "\<C-p>"
   endif
endfunction

E logo abaixo dela os mapeamentos:

inoremap <Tab> <C-R>=AutoCompletar("avancar")<CR>
inoremap <S-Tab> <C-R>=AutoCompletar("voltar")<CR>

Com isso a tecla 'Tab' com ajuda dessa função fará o trabalho das teclas supracitadas, tornando as coisas bem mais produtivas e divertidas! Por exemplo ao pressionar 'Tab' será mostrado um menu com as opções a serem percorridas de cima para baixo. Já 'Shift + Tab', mostra o mesmo menu porém percorrido de baixo para cima.

Agora se você está acostumado ao atalho 'Ctrl + Barra de espaço' dos grandes IDE's como Netbeans, Eclipse, Geany etc e gostaria de utilizar o mesmo no Vim, basta substituir as ocorrências de '<Tab>' e '<S-Tab>' por '<C-@>' e '<S-@>' respectivamente e você terá o resultado desejado.

Obs2.: Note que está função serve apenas para completar palavras e não blocos de códigos. Para isso busque scripts específicos para a linguagem de programação desejada em www.vim.org/scripts.

Mais detalhes? Consulte a documentação do Vim no próprio Vim!

:help <comando>

Fontes de consultas: www.vim.org e www.google.com.

Falou!


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Kotivox - Escrevendo diários no Linux
   Dica Linux recomendada ifstatus - Monitor de interface para console
   Dica Linux recomendada Game: Neverball
   Dica Linux recomendada WINFF - front-end ffmpeg - conversor universal de áudio e vídeo
   Dica Linux recomendada Ubuntu Recorder - Tenha o Linux em seu pendrive

Comentários
[1] Comentário enviado por SMarcell em 02/09/2010 - 08:28h:

*** ATENÇÃO ***

Há um pequeno bug (se é que pode ser chamado assim!) nessa função. Para corrigi-lo, substitua:

if posicao && getline(".")[posicao - 1] !~ '\k'

POR
if ! posicao || getline(".")[posicao - 1] !~ '\k'

Complementando...

E para aperfeiçoar ainda mais o recurso de autocompletação, defina as seguintes variáveis no '.vimrc' (antes da declaração da função acima!)

set dictionary+=/usr/share/dict/words
set complete=.,w,k


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.