Foi exatamente isso que o Aurelio falou quando eu falei pra ele que havia
feito um compilador do txt2tags para o vim :P. Pois bem, no Vim existe um modo
chamado quickfix que facilita bastante o ciclo de edição-compilação-edição
dentro do vim. Os compiladores são scripts vim que são carregados manualmente
com o comando :compiler. Uma vez carregado basta digitar :make que o
compilador é chamado e as mensagens de erro ou debug são jogadas para um
arquivo temporário que o vim utiliza para fazer a magia negra de ficar pulando
de erro em erro.
A magia negra depende somente de duas opções: makeprg e errorformat. O
makeprg nada mais é do que a linha de comando que é executada quando se
digita :make. A opção errorformat tem uma configuração bastante
complexa, é nela que se configuram os padrões que vão casar com as mensagens
de erro e destas esperasse extrair informações relevantes como a linha em que
o erro ocorreu, a mensagem de erro, o nome do arquivo e etc. Como cada
compilador gera mensagens da forma que bem entende, imagina como deve ser
legal configurar essa variável :-/. Mas felizmente o txt2tags não gera
mesagens de erro que justifiquem o laborioso trabalho de configurar essa
opção :P.
Se quiser ver um ambiente de desenvolvimento mais realista integrado com o vim de um olhada no projeto Agide. Esse projeto é do Bram Moolennar o cara do Vim.
Pra instalar comece baixando o arquivo txt2tags.vim e colocando no diretório correto (veja tabela).
| sistema | diretório de compiladores |
|---|---|
| Unix | ~/.vim/compiler/ |
| PC and OS/2 | $HOME/vimfiles/compiler ou $[Vim http://www.vim.org]/vimfiles/compiler |
| Macintosh | $[Vim http://www.vim.org]:vimfiles:compiler |
| Mac OS X | ~/.vim/compiler/ |
Depois digite :compiler, vai aparecer uma listagem com todos os
compiladores disponíveis, veja se o txt2tags.vim aparece lá.
:compiler /home/wnfreitas/.vim/compiler/txt2tags.vim /usr/share/vim/vim62/compiler/ant.vim /usr/share/vim/vim62/compiler/bcc.vim /usr/share/vim/vim62/compiler/checkstyle.vim /usr/share/vim/vim62/compiler/cs.vim /usr/share/vim/vim62/compiler/fortran_F.vim /usr/share/vim/vim62/compiler/fortran_cv.vim /usr/share/vim/vim62/compiler/fortran_elf90.vim /usr/share/vim/vim62/compiler/fortran_g77.vim /usr/share/vim/vim62/compiler/fortran_lf95.vim /usr/share/vim/vim62/compiler/hp_acc.vim /usr/share/vim/vim62/compiler/irix5_c.vim /usr/share/vim/vim62/compiler/irix5_cpp.vim /usr/share/vim/vim62/compiler/jikes.vim /usr/share/vim/vim62/compiler/mips_c.vim /usr/share/vim/vim62/compiler/mipspro_c89.vim /usr/share/vim/vim62/compiler/mipspro_cpp.vim /usr/share/vim/vim62/compiler/modelsim_vcom.vim /usr/share/vim/vim62/compiler/msvc.vim /usr/share/vim/vim62/compiler/pyunit.vim /usr/share/vim/vim62/compiler/ruby.vim /usr/share/vim/vim62/compiler/splint.vim /usr/share/vim/vim62/compiler/tex.vim /usr/share/vim/vim62/compiler/tidy.vim /usr/share/vim/vim62/compiler/xmllint.vim
Se não aparecer veja a opção runtimepath, o diretório ~/.vim deve
estar presente nela.
:set runtimepath runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim62,/usr/share/vim/vimfiles/after,~/.vim/after
Insira as seguintes linhas no seu ~/.vimrc. Pode ser no final dele mesmo
;).
augroup txt2tags au! autocmd FileType txt2tags compiler txt2tags augroup END
Isso ai quer dizer que toda vez que a opção filetype for setada para
txt2tags ele vai executar o comando :compiler txt2tags, configurando
as opções makeprg e errorformat e alguns key mappings.
Uma vez instalado e carregado corretamente o compilador ja está pronto para uso. Você tem os seguintes comandos a sua disposição:
| atalho | comando vim | descrição |
|---|---|---|
| <F8> | :make |
executa o comando de compilação |
| <F4> | :copen |
abre a janela de mensagens de erro ou debug |
| <F3> | :cclose |
fecha a janela de mensagens de erro ou debug |
Agora pra compilar basta digitar <F8>, ai se quiser ver se correu tudo bem digita <F4> pra abrir a janela de mensagens. Pode manter a janela de mensagens aberta e ficar cutucando <F8> que ela é atualizada.

Outra coisa importante é a opção autowrite, se ela estiver on
qualquer buffer que tiver sido alterado vai ser salvo antes do makeprg ser
executado, portanto aconselho manter essa opção ligada, ela não é setada
pelo compilador ;). Pra habilitar é só colocar
set autowrite
no seu ~/.vimrc.
O objetivo aqui é tornar mais eficiente o uso do vim com o txt2tags e não
enche de firulas e magiquinhas de sumir e aparecer com arquivos. O lance é ser
simples mas com alguma flexibilidade. No começo eu pegava o txt2tags direto do
PATH mas com o aparecimento dos primeiros betas da versão 2.0 vi que precisava
tornar isso customizavel então criei a variável g:txt2tags_executable.
Seguindo embalo vi que também poderia ser interessante configurar as opções de
linha de comando para o txt2tags (inicialmente isso era configurado no próprio
arquivo com a diretiva %!options) então surgiu g:txt2tags_options, que
hoje eu acho bloat mas vou deixar por enquanto.
O compilador usa por default o txt2tags em /usr/bin/txt2tags, mas é
possível configurar qual txt2tags usar através da variável
g:txt2tags_executable, para isso é só:
:let g:txt2tags_executable = "~/local/bin/txt2tags-2.0-beta3.py" :compiler txt2tags
ou para grandes projetos txt2tags:
:let g:txt2tags_executable = "make -f ~/public_html/makefile" :compiler txt2tags
é necessário carregar o compilador manualmente para que as opções makeprg
e errorformat seja atualizadas.
As opções de de linha de comando para o txt2tags são configuradas através da
variável g:txt2tags_options, seguindo o mesmo esquema:
:let g:txt2tags_options = "-vvv" :compiler txt2tags
sempre carregando o compilador em seguida.
Como essas variáveis não são alteradas frequentemente aconselho coloca-las no
~/.vimrc.
augroup txt2tags au! autocmd FileType txt2tags let g:txt2tags_executable = "/home/wnfreitas/local/bin/txt2tags-2.0-beta3.py" autocmd FileType txt2tags let g:txt2tags_options = "-v" autocmd FileType txt2tags compiler txt2tags augroup END
| comando vim | descrição |
|---|---|
:compiler |
lista todos os compiladores disponíveis |
:compiler txt2tags |
carrega as opções pra compilar com txt2tags |
:make |
executa o comando de compilação |
:copen |
abre a janela de mensagens de erro ou debug |
:cclose |
fecha a janela de mensagens de erro ou debug |
| atalho | comando vim |
|---|---|
| <F8> | :make |
| <F4> | :copen |
| <F3> | :cclose |
| atalho | descrição |
|---|---|
g:txt2tags_executable |
programa usardo para compilar arquivos .t2t |
g:txt2tags_options |
opções de linha de comando do txt2tags |
Esse documento, assim como muitos outros software livres, foi criado por voluntários. Se existe algum tópico a respeito do tema que esse documento não contempla, por favor ajude a manter esse documento completo enviando essas informações ou escrevendo você mesmo uma seção ou trcho de alguma seção.
Atente para o fato de que esse documento é livre e qualquer conteúdo adicionado a ele também deverá ser.
Se você realmente quiser contribuir, envie um email para Wilson Freitas <wilson freitas (a) econofisica com br>.
Obrigado.
Agora eu vou falar sobre os que ou o que tornou esse documento possível:
E todos os que eu espero que leiam e ajudem a contribuir com esse documento.
vim's txt2tags compiler plugin (C) 2004 Wilson Freitas.
È permitido distribuir cópias deste manual desde que forneça o Copyright em todas as cópias.
Se você pretende incluir este documento em alguma publicação, por favor contate o responsável e nós trabalharemos para garantir que todo documento esteja atualizada e de acordo com as informações disponíveis.