Acoxambres no vim
Bom, instalei o vim 7 já faz algum tempo. Quem já usou ele, sabe que ele tem um recurso de completação pressionando a tecla <TAB> (esse recurso funciona com o <TAB> somente se você colocar um mapeamento no seu ~/.vimrc, normalmente esse recurso funciona pressionado ctrl+n), porém esse recurso faz uma varredura apenas no arquivo no qual se está digitando o texto.
Como utilizo o vim para digitar textos, além de códigos-fonte, senti falta de uma completação de palavras que não se restringisse ao arquivo que estou editando.
Na preguiça de procurar uma solução decente, resolvi acoxambrar.
Para poder ter na completação várias palavras que ainda não haviam sido inseridas nesse arquivo, fiz o seguinte:
- Coloquei no arquivo que estava editando a seguinte linha:
#include “arquivo.txt”
Onde arquivo.txt era um arquivo no qual eu havia escrito um longo texto, sobre assunto semelhante ao do texto que eu estava digitando, ou seja, possuíam várias palavras em comum. Quem programa em linguagem C já está acostumado a usar a diretiva #include para incluir arquivos de cabeçalho e sabe que o vim faz a pesquisa de nomes de funções, constantes, entre outros dentro desses arquivos, que estão contidos no #include.
Dessa forma, incluindo um arquivo de texto, estou criando uma espécie de dicionário onde o vim vai procurar as palavras. Após digitar o texto, remove-se a diretiva, pois ela não mais será útil.
Um exemplo:
#include “artigo1.txt”
Escrevendo textos com a completação por tabs.
O arquivo artigo1.txt deverá estar na mesma pasta onde se encontra o arquivo que você está editando.
Postei esse tópico mais como uma curiosidade pois me foi muito útil. É um negócio meio óbvio, mas vale como dica eu acho. Ah, se houver outra forma de inserir um dicionário de palavras, desculpem, mas como disse, eu tava com preguiça de procurar…
Mapeamento da tecla TAB:
function InsertTabWrapper()
let col = col(‘.’) – 1
if !col || getline(‘.’)[col - 1] !~ ‘\k’
return “\<tab>”
else
return “\<c-p>”
endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
Valeu pela correção, eljunior.






buenas!
tchê, só pra lembrar: o vim não completa via tecla TAB.
no teu completa porque tem um mapeamento no teu vimrc.
sim, pois é, me esqueci desse detalhe…
hehehe!!!
Interessante de qualquer foma!
ajeitei lá…
apoiado novo leiaute!
sim, achei massa tbm, só ainda não consegui ajeitar o blogroll…
layout é para os fracos…
sim, percebe=-se tua opinião pelo leiaute do teu blog…
sim ! que adianta um layout com conteudo idiota !
é melhor conteúdo idiota e boim leiaute do que conteúdo e leiaute idiotas… hehehe!
que é que o hacker psicótico tá enchendo o saco?
tah tah, que coisa bixa discuti layout, vai colori o teu entao !
beleza… hehehe!!!