Vim para desenvolvedores Perl |
|
Esta é uma tradução livre do artigo original de Leonid Mamchenkov em: http://mamchenkov.net/wordpress/2004/05/10/vim-for-perl-developers/.
Tradução feita por Alceu Rodrigues de Freitas Junior (glasswalk3r<at>yahoo<.>com<.>br).
Esta é minha tentativa de prover instruções simples e claras sobre adotar o editor de texto Vim com ferramenta de auxílio para programação. Eu estou usando Perl como linguagem de programação para meus exemplos mas esse documento pode ser aplicado igualmente a qualquer outra linguagem de programação.
Algumas pessoas podem argumentar que o Vim não necessita de nenhuma configuração adicional para ser usado com ferramenta de programação, enquanto outros poderão dizer que ele nunca será tão bom quanto um Ambiente de Desenvolvimento Integrado - IDE (ou " Integrated Development Environments" do original em inglês). Eu não irei discutir sobre esses dois pontos de vista no entanto irei dar diversas dicas sobre como fazer com que um simples editor, como visto por algumas pessoas, fique muito próximo a usabilidade de uma IDE, como é necessário para outros.Primeiramente, este documento é para pessoas que já estejam usando o Vim para tarefas de programação. Estas pessoas que sentem que falta algo no Vim deveriam definitivamente ler este documento. Para pessoas que recentemente pararam de usar o Vim devido a falta de alguma coisa também deveriam ler esse documento.
Eu assumo que o leitor tenha o Vim instalado no seu sistema e esteja confortável com edição de texto simples usando o mesmo.
Outro ponto assumido é que o leitor tenha uma
experiência básica de
configuração do Vim, o que significa o arquivo de
configuração .vimrc.
Eu assumo que o leitor esteja usando uma máquina com UNIX/Linux para edição com o Vim. Do contrário, exemplos de linha de comando no shell devem ser interpretadas como pseudo código para um algorítimo.
A última mas não menos importante coisa assumida é que o leitor tenha acesso à Internet e saiba como navegar em sites web e fazer download de arquivos.
O documento está separado em duas partes: "Configuração Básica" e "Configuração avançada". A "Configuração Avançada" é depois dividida em "Configuração Comum" e "Configuração Específica para Perl".
A "Configuração
Básica"
contem os exemplos mais simples de configuração
do Vim e não necessitam de conexão com a
Internet. Estas são geralmente opções
básicas de configuração do Vim.
A "Configuração Avançada" possui exemplos de instalação e configuração de plug-ins do Vim. Você irá precisar de conexão com a Internet para seguir essa seção.
Se você usa o Vim para suas tarefas de
programação mas não usa o Perl como
linguagem então a seção
"Configuração
Comum" é para
você. Exemplos na seção
"Configuração
Específica para Perl"
podem ser usados para extender o suporte do Vim para outras linguagens
de programação.
Para poder prover exemplos que funcionem, eu criei um novo
usuário "macaco" (codemonkey
no original em inglês, mas "macaco de
programação" não é um bom
nome de usuário) no meu servidor caseiro altamente
atualizado RedHat Linux 7.3. Esse usuário não tem
nenhum arquivo de configuração .vimrc
e usa somente o arquivo padrão global de
configuração, o qual não foi
modificado
de nenhuma maneira por mim. O Vim
versão 6.1 do RedHat foi instalado no servidor sem
nenhuma alteração também.
Eu criei um arquivo vazio .vimrc no
diretório /home/macaco/, cujo
o qual é o diretório home do usuário
"macaco". Eu também criei um diretório
específico para o Vim com a seguinte estrutura:
Qual a versão instalada do Vim?
[macaco@gucho macaco]$ rpm -qa | grep -i vim
vim-minimal-6.1-18.7x.2
vim-common-6.1-18.7x.2
vim-enhanced-6.1-18.7x.2
Em qual diretório estou agora?
[macaco@gucho macaco]$ pwd
/home/macaco
Configuração específica do Vim para o usuário
[macaco@gucho macaco]$ touch .vimrc
[macaco@gucho macaco]$ mkdir .vim
[macaco@gucho macaco]$ mkdir .vim/colors
[macaco@gucho macaco]$ mkdir .vim/compiler
[macaco@gucho macaco]$ mkdir .vim/doc
[macaco@gucho macaco]$ mkdir .vim/ftplugin
[macaco@gucho macaco]$ mkdir .vim/plugin
[macaco@gucho macaco]$ mkdir .vim/syntax
Cada recurso de instalação e/ou configuração é explicado em separado e pode ser feita de forma indepentende das outras. Imagens da tela são disponibilizadas aonde for apropriado.
O Vim tem uma grande comunidade com um monte de membros amigáveis e dispostos a ajudar. Se você está usando o Vim ou apenas planejando fazê-lo eu sugiro que você se inscreva na lista de discussão do Vim em http://www.vim.org/community.php.
Visite o site do Vim para uma coleção de dicas e plug-ins em http://www.vim.org/.
O Vim é distribuído com uma extensa
documentação que você pode encontrar
em /usr/share/doc/vim-common-6.1/docs/directory
(esse diretório pode variar). Eu coloquei
comentários sobre os arquivos nesse diretório
aonde era apropriado.
Tabulação é um dos tópicos mais quentes em discussões entre programadores quando o assunto é estilo. Uma excelente explicação sobre qual o problema com tabulações e espaços pode ser lida em http://www.jwz.org/doc/tabs-vs-spaces.html. Eu devo dizer que, no entanto, que não concordo com a posição do autor sobre o assunto.
O artigo oferece várias opções para configuração do vi/Vim para controlar o comportamento de tabs. Eu irei ajustar/repetir algumas que eu considero importantes.
Adicione “set tabstop=4”
em seu .vimrc
para mostrar todas as ocorrências do caracter Tab (ASCII #9)
usando 4 espaços.
Essa opção não irá
modificar o texto, irá modificar apenas a
visualização do mesmo
Adicione “set autoindent”
em seu .vimrc
para o Vim automaticamente posicionar o cursor com
identação apropriada quando você
pressiona Enter e quer escrever a próxima linha de
código. Isso é muito útil quando
você está identando seu código com
estruturas como laços e procedimentos.
O Vim permite que você selecione um bloco de
código e muda seu nível de
identação (aumentando ou diminuindo o
nível). Controle a largura da
identação usando “set
shiftwidth=4” no seu arquivo de
configuração.vimrc.
Enquanto você está no modo de comando, o
Vim pode completar os nomes dos arquivos e diretórios que
você quer abrir ou salvar um arquivo. Para fazer isso
você deve começar a digitar o nome no
prompt de comando e entao pressionar a table de
completação. Você pode
configuração a tecla de
completação para qualquer coisa que
você quiser usando a linha“set
wildchar=<tab></tab>”
no seu arquivo de configuração .vimrc.
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/indent.txt.
O Vim identifica palavras chaves,
comentários, variáveis, sequências de
caracteres, POD e outras partes padrão do programa e as
marca. O Vim suporta dois diferentes modos de cor: um para terminais
com cor de fundo escuro e outro para terminais com fundo de tela claro.
Você pode controlar esses modos usando o comando “set
bg=dark” e “set
bg=light” no seu .vimrc.Se você ainda não gosta da aparência do código, fique ligado até a discussão sobre “Esquemas de Cor”. |
/usr/share/doc/vim-common-6.1/docs/syntax.txt.
Uma das vantagens do Vim cuja a qual eu não consigo
viver sem é completação de texto.
Quando editando, pressione Ctrl-n / Ctrl-p
para navegar entre as diferentes sugestões de
completação o Vim gera uma lista baseadas nas
palavras do arquivo corrente. Se você precisa que a
completação de texto faça
sugestão baseada em outros arquivos, então o Vim
entende por padrão o arquivo ctags.
Simplesmente execute “ctags *.p?”
para gerar ctags
para todos os arquivos Perl e módulos que estiverem no
diretório corrente (assumindo é claro que
você esteja usando “.pl”
como extensão para scripts Perl
e “.pm” como
extensão para módulos Perl). Essa
característica do
Vim não apenas evita um bom tempo de
digitação mas diminui em muito a taxa de erros,
especialmente com relação a variáveis
e procedimentos com nomes longos no código.
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/usr_24.txt.
| Algumas vezes eu preciso ver dois ou mais arquivos simultaneamente. Enquanto eu posso sempre iniciar outra sessão do Vim num outro terminal, isso não é tão confortável como usar a opção de dividir janelas. |
O Vim suporta tanto divisão vertical e horizontal
da janela. Para dividir a janela atual horizontalmente execute
“:split”
enquanto estiver no modo normal. Para dividir no modo vertical, use
“:vsplit”. Se
você não indicar nenhum arquivo como argumento
para o “split/vsplit” o
arquivo atual será usado. Você pode continuar
dividindo a janela resultante quantas vezes quiser. Use o Ctrl-w
w para navegar entre as janelas. O
comando “:close”
irá fechar todas as janelas abertas. O comando “:only”
fechará todas as janelas abertas exceto a janela corrente.
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/usr_08.txt.
O Vim irá mostrar ambos os arquivos no modo de
divisão vertical. Quando
você mudar de uma linha para outra em uma janela, o Vim
automaticamente
irá fazer o mesmo na outra janela para você.
Você pode remendar (patch)
as diferenças individuais usado os comandos do
e dp. O do
irá pegar o remendo da janela vizinha e aplicar no buffer corrente
enquanto o dp irá aplicar
a diferença no buffer
da janela vizinha.
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/diff.txt.
Para dizer ao Vim como usar dobra por marca adicione as
seguintes linhas no seu .vimrc:
" Folding configuration
set foldmethod=marker
" Edit and uncomment next line if you want non-default marker
"set foldmarker="{{{,}}}"
Se você precisar de mais
informações sobre esse tópico leia os
arquvos /usr/share/doc/vim-common-6.1/docs/usr_28.txt
e /usr/share/doc/vim-common-6.1/docs/fold.txt.
Uma das características do Vim que aceleram a
navegação são marcas.
Você pode
configurar uma marca em qualquer lugar do texto e então
simplesmente voltar para ela. Você pode configurar
várias
marcas. Você pode também configurar marcas em
vários arquivos e rapidamente trocar de uma para o outro.
Normalmente eu configuro uma marca num local que eu esteja trabalhando
com mc (m
é para “marca”, c
eu uso para “corrente”) e então eu
rapidamente retorno para o mesmo local com um 'c.
Se você precisar de mais
informações sobre esse tópico leia o
arquivo /usr/share/doc/vim-common-6.1/docs/motion.txt.
Para algumas pessoas a identação
horizontal
não é suficiente. Elas precisam de alguma
identação vertical para ajudá-las a
ver partes
correspondentes do código. Enquanto eu não sou
uma dessas
pessoas, eu vi essa facilidade por aí com tanta
frequência
que então resolvi adicioná-la ao.vimrc
do macaco.Tudo o que você precisa fazer para ter identação vertical mostrando um caracter pipe (”|”) é adicionar as seguintes linhas no seu .vimrc: |
" Isto é para identação vertica
set list
set listchars=tab:|
" Note o espaço após a última contrabarra
“:set list”
força o Vim a mostrar caracteres "escondidos" como
tabulações, caracteres de fim de linha e fim de
arquivo.
“:set listchars=tab:| ”
pede ao Vim para mostrar somente os caracteres de
tabulação e usar o pipe
(”|”) com um espaço (”
“) para tanto, ao invés do habitual
“^I” que o Vimi gosta de mostrar.
| Vamos começar com um exemplo simples. O website do Vim oferece um monte de esquemas de cores para todos os gostos e prefências. Encontrar um esquema de cor e baixá-lo pode ser meio chato de fazer, no entanto. Felizmente o mundo não é um lugar sem pessoas gentis. Alguém chamado Robert (MetaCosm) baixou todos os esquemas de cor e colocou-os em um um único arquivo que ele copiou de volta para o website do Vim. Vamos baixar esse arquivo de http://www.vim.org/scripts/script.php?script_id=625. |
Salve o colors.zip no seu
diretório .vim/
e rode o unzip nele. Se certificar que todos
os arquivos estejam no formato UNIX também é uma
boa idéia.
[macaco@gucho .vim]$ ls
colors.zip
[macaco@gucho .vim]$ unzip colors.zip
Archive: colors.zip
creating: colors/
inflating: colors/adaryn.vim
inflating: colors/adrian.vim
inflating: colors/aqua.vim
inflating: colors/astronaut.vim
inflating: colors/asu1dark.vim
inflating: colors/autumn.vim
inflating: colors/biogoo.vim
inflating: colors/blackdust.vim
inflating: colors/BlackSea.vim
inflating: colors/blue.vim
inflating: colors/bluegreen.vim
inflating: colors/bog.vim
inflating: colors/borland.vim
inflating: colors/breeze.vim
inflating: colors/brookstream.vim
inflating: colors/brown.vim
inflating: colors/bw.vim
inflating: colors/c.vim
inflating: colors/camo.vim
inflating: colors/candy.vim
inflating: colors/caramel.vim
inflating: colors/ChocolateLiquor.vim
inflating: colors/coffee.vim
inflating: colors/colorer.vim
inflating: colors/colorscheme_template.vim
inflating: colors/cool.vim
inflating: colors/dante.viminflating: colors/darkblue.vim
inflating: colors/darkdot.vim
inflating: colors/darkocean.vim
inflating: colors/darkslategray.vim
inflating: colors/dawn.vim
inflating: colors/default.vim
inflating: colors/denim.vim
inflating: colors/desert.vim
inflating: colors/elflord.vim
inflating: colors/emacs.vim
inflating: colors/evening.vim
inflating: colors/fine_blue.vim
inflating: colors/fnaqevan.vim
inflating: colors/fog.vim
inflating: colors/golden.vim
inflating: colors/ibmedit.vim
inflating: colors/ironman.vim
inflating: colors/koehler.vim
inflating: colors/lanzarotta.vim
inflating: colors/lilac.vim
inflating: colors/manxome.vim
inflating: colors/midnight.vim
inflating: colors/midnight2.vim
inflating: colors/morning.vim
inflating: colors/murphy.vim
inflating: colors/navajo-night.vim
inflating: colors/navajo.vim
inflating: colors/night.vim
inflating: colors/nightshimmer-theme.vim
inflating: colors/nightwish.vim
inflating: colors/northsky.vim
inflating: colors/oceanblack.vim
inflating: colors/oceandeep.vim
inflating: colors/pablo.vim
inflating: colors/PapayaWhip.vim
inflating: colors/peachpuff.vim
inflating: colors/potts.vim
inflating: colors/print_bw.vim
inflating: colors/rainbow_autumn.vim
inflating: colors/rainbow_breeze.vim
inflating: colors/rainbow_fine_blue.vim
inflating: colors/rainbow_fruit.vim
inflating: colors/rainbow_neon.vim
inflating: colors/rainbow_night.vim
inflating: colors/rainbow_sea.vim
inflating: colors/redblack.vim
inflating: colors/ron.vim
inflating: colors/sand.vim
inflating: colors/scite.vim
inflating: colors/sean.vim
inflating: colors/seashell.vim
inflating: colors/shine.vim
inflating: colors/taqua.vim
inflating: colors/tomatosoup.vim
inflating: colors/toothpik.vim
inflating: colors/torte.vim
inflating: colors/transparent.vim
inflating: colors/whitedust.vim
inflating: colors/wintersday.vim
inflating: colors/xemacs.vim
inflating: colors/xian.vim
inflating: colors/zellner.vim
inflating: colors/zenburn.vim
[macaco@gucho .vim]$ dos2unix colors/*
dos2unix: converting file colors/BlackSea.vim to UNIX format ...
dos2unix: converting file colors/ChocolateLiquor.vim to UNIX format ...
dos2unix: converting file colors/PapayaWhip.vim to UNIX format ...
dos2unix: converting file colors/adaryn.vim to UNIX format ...
dos2unix: converting file colors/adrian.vim to UNIX format ...
dos2unix: converting file colors/aqua.vim to UNIX format ...
dos2unix: converting file colors/astronaut.vim to UNIX format ...
dos2unix: converting file colors/asu1dark.vim to UNIX format ...
dos2unix: converting file colors/autumn.vim to UNIX format ...
dos2unix: converting file colors/biogoo.vim to UNIX format ...
dos2unix: converting file colors/blackdust.vim to UNIX format ...
dos2unix: converting file colors/blue.vim to UNIX format ...
dos2unix: converting file colors/bluegreen.vim to UNIX format ...
dos2unix: converting file colors/bog.vim to UNIX format ...
dos2unix: converting file colors/borland.vim to UNIX format ...
dos2unix: converting file colors/breeze.vim to UNIX format ...
dos2unix: converting file colors/brookstream.vim to UNIX format ...
dos2unix: converting file colors/brown.vim to UNIX format ...
dos2unix: converting file colors/bw.vim to UNIX format ...
dos2unix: converting file colors/c.vim to UNIX format ...
dos2unix: converting file colors/camo.vim to UNIX format ...
dos2unix: converting file colors/candy.vim to UNIX format ...
dos2unix: converting file colors/caramel.vim to UNIX format ...
dos2unix: converting file colors/coffee.vim to UNIX format ...
dos2unix: converting file colors/colorer.vim to UNIX format ...
dos2unix: converting file colors/colorscheme_template.vim to UNIX format ...
dos2unix: converting file colors/cool.vim to UNIX format ...
dos2unix: converting file colors/dante.vim to UNIX format ...
dos2unix: converting file colors/darkblue.vim to UNIX format ...
dos2unix: converting file colors/darkdot.vim to UNIX format ...
dos2unix: converting file colors/darkocean.vim to UNIX format ...
dos2unix: converting file colors/darkslategray.vim to UNIX format ...
dos2unix: converting file colors/dawn.vim to UNIX format ...
dos2unix: converting file colors/default.vim to UNIX format ...
dos2unix: converting file colors/denim.vim to UNIX format ...
dos2unix: converting file colors/desert.vim to UNIX format ...
dos2unix: converting file colors/elflord.vim to UNIX format ...
dos2unix: converting file colors/emacs.vim to UNIX format ...
dos2unix: converting file colors/evening.vim to UNIX format ...
dos2unix: converting file colors/fine_blue.vim to UNIX format ...
dos2unix: converting file colors/fnaqevan.vim to UNIX format ...
dos2unix: converting file colors/fog.vim to UNIX format ...
dos2unix: converting file colors/golden.vim to UNIX format ...
dos2unix: converting file colors/ibmedit.vim to UNIX format ...
dos2unix: converting file colors/ironman.vim to UNIX format ...
dos2unix: converting file colors/koehler.vim to UNIX format ...
dos2unix: converting file colors/lanzarotta.vim to UNIX format ...
dos2unix: converting file colors/lilac.vim to UNIX format ...
dos2unix: converting file colors/manxome.vim to UNIX format ...
dos2unix: converting file colors/midnight.vim to UNIX format ...
dos2unix: converting file colors/midnight2.vim to UNIX format ...
dos2unix: converting file colors/morning.vim to UNIX format ...
dos2unix: converting file colors/murphy.vim to UNIX format ...
dos2unix: converting file colors/navajo-night.vim to UNIX format ...
dos2unix: converting file colors/navajo.vim to UNIX format ...
dos2unix: converting file colors/night.vim to UNIX format ...
dos2unix: converting file colors/nightshimmer-theme.vim to UNIX format ...
dos2unix: converting file colors/nightwish.vim to UNIX format ...
dos2unix: converting file colors/northsky.vim to UNIX format ...
dos2unix: converting file colors/oceanblack.vim to UNIX format ...
dos2unix: converting file colors/oceandeep.vim to UNIX format ...
dos2unix: converting file colors/pablo.vim to UNIX format ...
dos2unix: converting file colors/peachpuff.vim to UNIX format ...
dos2unix: converting file colors/potts.vim to UNIX format ...
dos2unix: converting file colors/print_bw.vim to UNIX format ...
dos2unix: converting file colors/rainbow_autumn.vim to UNIX format ...
dos2unix: converting file colors/rainbow_breeze.vim to UNIX format ...
dos2unix: converting file colors/rainbow_fine_blue.vim to UNIX format ...
dos2unix: converting file colors/rainbow_fruit.vim to UNIX format ...
dos2unix: converting file colors/rainbow_neon.vim to UNIX format ...
dos2unix: converting file colors/rainbow_night.vim to UNIX format ...
dos2unix: converting file colors/rainbow_sea.vim to UNIX format ...
dos2unix: converting file colors/redblack.vim to UNIX format ...
dos2unix: converting file colors/ron.vim to UNIX format ...
dos2unix: converting file colors/sand.vim to UNIX format ...
dos2unix: converting file colors/scite.vim to UNIX format ...
dos2unix: converting file colors/sean.vim to UNIX format ...
dos2unix: converting file colors/seashell.vim to UNIX format ...
dos2unix: converting file colors/shine.vim to UNIX format ...
dos2unix: converting file colors/taqua.vim to UNIX format ...
dos2unix: converting file colors/tomatosoup.vim to UNIX format ...
dos2unix: converting file colors/toothpik.vim to UNIX format ...
dos2unix: converting file colors/torte.vim to UNIX format ...
dos2unix: converting file colors/transparent.vim to UNIX format ...
dos2unix: converting file colors/whitedust.vim to UNIX format ...
dos2unix: converting file colors/wintersday.vim to UNIX format ...
dos2unix: converting file colors/xemacs.vim to UNIX format ...
dos2unix: converting file colors/xian.vim to UNIX format ...
dos2unix: converting file colors/zellner.vim to UNIX format ...
dos2unix: converting file colors/zenburn.vim to UNIX format ...
[macaco@gucho .vim]$
Agora você poderá testar todos os
esquemas de cores com um “:colorscheme
something” e escolher aquele que você
mais gostar. Depois de terminar sua escolha, adicione a
linha “colorscheme
something” no seu .vimrc.
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/usr_06.txt.
Vamos baixar o BlockComment.vim
de http://www.vim.org/scripts/script.php?script_id=473
e copiá-lo para o diretório .vim/plugin/
directory. Esse plug-in
automaticamente provê dois mapeamentos de
comando: “.c”
para comentar e “.C”
para descomentar o código de volta.
Existem, normalmente, melhores (mais convenientes) formas de trabalhar com arquivos e buffers. O website do Vim lista alguns plug-ins cujos os quais podem lidar somente com arquivos, ou com buffers ou com ambos. Um desses plug-ins é o gerenciador de janelas de Srinath Avadhanula. Vamos buscar esse gerenciador de http://www.vim.org/scripts/script.php?script_id=95.
O plug-in gerenciador de janelas do Vim pode fazer uso do plug-in bufexplorer feito por Jeff Lanzarotta disponível em http://www.vim.org/scripts/script.php?script_id=42.
A instalação é feita da
maneira usual - salvar, descompactar e rodar o dos2unix. Uma vez
que não vamos querer o navegador de
arquivos/diretórios sempre ligado, vamos adicionar uma linha
de mapeamento no nosso.vimrc para “:WMToggle”
usando F2.
" Isso é para o gerenciador de janelas
map <F2> :WMToggle<CR>
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/usr_23.txt.
Se você me perguntar, eu direi que estou
quase feliz. A
única coisa que estou sentindo falta é algo para
facilitar minha navegação pelo código.
Eu preciso
de uma forma rápida de mudar para diferentes partes do
código e uma visão hierárquivca do
mesmo. Mais uma
vez eu vou até o website
do Vim e dou uma boa olhada no plug-in
de listas de tags
feita por Yegappan Lakshmanan e disponível em http://www.vim.org/scripts/script.php?script_id=273.
Esse script
não tem sequer um arquivo compactado!
Tudo o
que você tem que fazer é copiá-lo para
diretório .vim/plug-in. Vamos
mapear o comando “:Tlist”
para a tecla F3. |
" Isto é para a lista de tags
map <F3> :Tlist<CR>
Uma coisa chata que eu descobri usando a lista de tags
é que ela redimensiona a janela sempre que
possível. Eu
preferi modificar essa função adicionando em o
seguinte
em meu .vimrc
" Isso é para a taglist
let Tlist_Inc_Winwidth = 0
map <F3> :Tlist<CR>
Se você precisar de mais
informações sobre esse tópico, leia o
arquivo /usr/share/doc/vim-common-6.1/docs/tagsrch.txt.
O plug-in está localizado em http://www.vim.org/scripts/script.php?script_id=61.
Baixe ele e descompacte-o em seu diretório .vim/.
Novamente, processar todos os arquivos usando o
comando dos2unix
é uma boa idéia se você estiver usando
um
computador com UNIX/Linux como eu estou. O arquivo vimrc_example
empacotado no arquivo contem um exemplo de
configuração que você irá
precisar copiar para seu .vimrc.
[macaco@gucho .vim]$ ls
colors colors.zip Embperl_Syntax.zip
[macaco@gucho .vim]$ unzip Embperl_Syntax.zip
Archive: Embperl_Syntax.zip
inflating: colors/embperl_yellow.vim
creating: syntax/
inflating: syntax/embperl.vim
inflating: vimrc_example
[macaco@gucho .vim]$ cat vimrc_example
"let perl_fold=1
augroup filetypedetect
autocmd! BufNewFile,BufRead *.epl,*.phtml setf embperl
augroup END
autocmd BufNewFile,BufRead *.epl,*.phtml colorscheme embperl_yellow
O esquema de cores do Embperl
O plug-in de destaque de sintaxe do Embperl syntax tem seu próprio esquema de cores, então não se preocupe se você ver cores diferentes daquelas que você possui.
Mais uma vez, baixe ele do website do Vim em http://www.vim.org/scripts/script.php?script_id=56.
As instruções de instalação
são simples: apenas copie o arquivo perl.vim
(desenvolvido por Lukas Zapletal) no seu diretório .vim/compiler/.
Agora nós queremos especificar para quais arquivos queremos
que o Vim use nossos novos scripts
de compilador do Perl. Isso é facilmente feito adicionando-se
as seguintes linhas no .vimrc.
" Use o compilador do Perl para todos arquivos com extensão *.pl e *.pm
autocmd BufNewFile,BufRead *.p? compiler perl
Agora você pode usar “:make”
para checar por erros no seu código. Se você tiver
algum
problema no código, então o Vim irá
posicionar o
cursor na linha em que foi encontrado o primeiro problema.
Você
pode usar “:cnext” e
“:cprevious” para ir e
voltar entre as mensagens. “:clist”
irá mostrar uma lista com todos os erros.
Se você precisar de mais
informações sobre o assunto sobre esse
tópico leia o arquivo /usr/share/doc/vim-common-6.1/docs/usr_30.txt.
Mais uma vez vamos visitar o website do Vim e
baixar o plug-in
Perldoc desenvolvido por Colin Keith de http://www.vim.org/scripts/script.php?script_id=209.
unzip perldoc.zip e processe todos os arquivos
extraídos usando o comando dos2unix.
É uma boa idéia adicionar o mapeamento F1
para “:Perldoc”
no seu .vimrc.
" Isso é para o perldoc.vim
autocmd BufNewFile,BufRead *.p? map <F1> :Perldoc<cword><CR>
autocmd BufNewFile,BufRead *.p? setf perl
autocmd BufNewFile,BufRead *.p? let g:perldoc_program='/usr/bin/perldoc'
autocmd BufNewFile,BufRead *.p? source /home/macaco/.vim/ftplugin/perl_doc.vim
Se você estiver usando uma versão mais nova do que eu, então pule a última linha.
Agora sempre que você pressionar F1
quando estiver editando um arquivo Perl, o “:Perldoc”
irá ser executado para a palavra que estiver sobre o cursor
e
sua janela corrente será dividida horizontalmente e
você
verá a documentação do Perldoc
apropriada.
Depois da instalação desse plug-in eu
notei que a
marcação de sintaxe de alguns dos meus programas
foi
interrompida. Depois de uma olhada rápida eu entendi o isso
aconteceu devido ao uso extensivo do caracter underscore
(”_”) em nomes de procedimentos. Eu tive que
consertar isso simplesmente adicionando um caracter underscore
(”_”) na lista de caracteres chaves na
linha 14 do arquivo .vim/ftplugin/perl_doc.vim.
" Adiciona / e . conforme requerido.
" setlocal iskeyword=a-z,A-Z,48-57,:,/,.
" Adiciona / e . como requerido. Adiciona também _ como utilizado em nomes de procedimentos
setlocal iskeyword=a-z,A-Z,48-57,:,/,.,_
Como pôde ser visto acima, o Vim é um poderoso e flexível editor de texto com um monte de funcionalidades que podem ser facilmente adicionadas a distribuição padrão. O website do Vim contêm muitos outros plug-ins além dos que eu mostrei. Alguns desses plug-ins oferecem soluções alternativas para as que eu mostrei nesse documento.
Se você alguma vez sentir que falta algo no Vim enquanto o estiver usando ou se você pensa que deveria haver uma maneira mais simples e/ou fácil de fazer então navegue pela seção Tips and Scripts do website do Vim e peça por ajuda na lista de discussão.
:w
Na data de criação do artigo original, provalvemente o Vim não possuia versões para usuários de sistemas MS Windows®. Você pode encontrar diferentes "sabores" do Vim para Windows aqui: http://www.vim.org/download.php#pc. O que mais provavelmente atenderá suas necessidade está nesse link: ftp://ftp.vim.org/pub/vim/pc/gvim63.exe.
É possível fazer uso do Cygwin (http://www.cygwin.com)
e se utilizar dos recursos descritos nesse artigo. O Cygwin ainda
permite a instalação de um pacote adicional
chamado perl-support.vim (acesse http://vim.sourceforge.net/scripts/script.php?script_id=556 para mais detalhes). Uma vez instalado
esse pacote leia o arquivo README.perlsupport
para ter maiores informaçães sobre como
utilizá-lo. Esse pacote sozinho implementa a maioria dos
recursos específicos para Perl descrito durante o artigo.
vimtutor
que lhe mostrará um tutorial básico ou
então pelo link http://www.truth.sk/vim/vimbook-OPL.pdf.
:wq