Fala galera, tudo bem? Hoje vim trazer uma série de dicas bem bacanas pra quem curte utilizar o VIM para automatizar algumas tarefas na hora de edição de arquivos e até mesmo em desenvolvimento. Na verdade, vim trazer uma lista de vários recursos nativos do VIM que podem fazer com que o mesmo se aproxime de uma IDE de desenvolvimento completa na hora de programar scripts direto nos servidores ou localmente mesmo, daí vai de você.
Antes de mais nada, vou advertir que o conteúdo deste post não é para usuários iniciantes, então se você não teve nenhum contato com o VIM como ferramenta de edição de texto, ou está começando, sugiro que dê uma olhada no post que eu fiz explicando alguns comandos diários do VIM.
Setando o Filetype no VIM
Para fazer o vim reconhecer o tipo de arquivo que você está se editando, ou seja, para ele respeitar o destaque de funções específicas da sua linguagem, seja ela PHP, Python, Ruby, Shell e etc, precisamos habilitar o filetype no console do VIM.
filetype plugin on
Setando a verificação de Sintaxe no VIM
Para fazer com que o editor reconheça e destaque partes do seu código, como classes, chaves, funções variáveis , constantes e etc, é interessante ligar o Syntax ON no console do VIM
:syntax on #Set
:syntax off #Unset
Setando a exibição do numero de linhas no VIM
Para habilitar a exibição do número de linhas no VIM, basta utilizar o set nu. Essa como outras ficas já foram dadas neste post. Mas vou repetir algumas aqui só pra deixar tudo mais enxuto pra quem abrir essa paginazinha do zero. Para retirar a numeração, basta setar o nonu
:set nu #Set
:set nonu #Unset
Ajustando o Espaçamento nos Tabs
Esta é uma variável que eu prefiro não adicionar no meu .vimrc, porque eu programo em algumas linguagens além do PHP, e isso me incomoda um pouco quando eu vou programar em Javascript ou em Python que eu utilizo espaçamento nos Tabs de 4 enquanto no PHP eu utilizo espaçamento de 2 nos tabs.
:set expandtab ts=4 sw=4
Setando o Auto Indent no Vim
Acho que uma das coisas que mais dificultam no desenvolvimento utilizando diretamente o VIM é o fato da indentação de código. Porém para resolver isso existe o Auto Indent no console, conhecido como o parâmetro ai. Após configurar o espaçamento, o Auto Indent irá respeitar certinho o que você definir.
:set ai #Set
:set noai #Unset
Setando o autocomplete de PHP no VIM
Por default, todos as funções do Omni Completation vem desabilitadas por padrão. No PHP, funciona bem pra caramba, basta setar no console o parâmetro
:set omnifunc=phpcomplete#CompletePHP
Enquanto estiver escrevendo alguma função no PHP, basta pressionar o CTRL + x e CTRL + o para abrir as opções de autocomplete.
Dividindo o terminal com outros arquivos utilizando o Split
Para dividir a exibição do editor em várias páginas, utilizamos o comando Split. Podemos abrir mais janelas, já com um documento aberto, ou abrir elas todas de uma vez utilizando o parâmetro -O quando chamamos do vim para editar os arquivos. Para navegar entre os splits, basta utilizar o CTRL+ww
# vim -O arquivo1.php arquivo2.php arquivo3.php
Para abrir um documento, já com a janela aberta, basta utilizar no console o comando:
:split arquivo.php
Checando análise de erros de sintaxe diretamente pelo VIM
O VIM funciona como um X-Debug integrado, validando praticamente todo o arquivo editado, fazendo várias validações como sintaxe, variáveis não definidas, funções não fechadas e etc. Depois de salvar o arquivo, digite no console:
:!php -l %
Abrindo vários arquivos e navegando entre eles
Em alternativa com o Split, podemos reservar toda a tela do terminal para somente um documento, e mesmo assim estar editando vários de uma só vez. Você pode navegar entre os documentos abertos utilizando :n no console para avançar e :N para voltar entre os arquivos, e utilizar :ls para listar os documentos abertos. Para abrir vários documentos, a maneira é bem similar:
# vim documento1.php documento2.php documento3.php
Para navegar entre os documentos:
:n #Ir para o próximo documento
:N #Ir para o documento anterior
:n documento4.php # Abrir novo documento
:ls #listar documentos abertos
Persistindo as configurações
Se você sempre for usar algumas opções de edição, como o autocomplete, o auto indent, a numeração de linhas, não é muito legal ficar sempre setando os parâmetros um atrás do outro sempre que abrir um arquivo. Para isso, nós devemos setar todos os comandos dentro do arquivo .vimrc do usuário.
$ vim ~/.vimrc
Update 15/08/2016
Busca inteligente de arquivos no diretório do projeto com CtrlPSite do projeto: http://kien.github.io/ctrlp.vim/
Essa dica veio do Rafael, que trabalha aqui comigo. O Ctrl P é um plugin muito bacana de busca do diretório atual, te possibilitando abrir janelas com os arquivos encontrados a partir do parâmetro buscado. Por exemplo, se eu setar CTRL + P e em seguida digitar "controller" ele vai buscar pra mim todos os arquivos que tenham "controller" no nome.
Instalação do CtrlP
$ cd ~/.vim
$ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
Com o projeto clonado, edite sem vimrc e adicione a seguinte linha:
$ vim ~/.vimrc
set runtimepath^=~/.vim/bundle/ctrlp.vim
Agora no VIM, rode o comando no console para carregar os helps
:helptags ~/.vim/bundle/ctrlp.vim/doc
Agora só reiniciar seu VIM e digitar um CTRL + P para acionar as buscas
Espero ter ajudado :)
Muito legal a sua dica! Valeu!
ResponderExcluir