sábado, 13 de agosto de 2016

VIM :: Transformando o editor texto em um ambiente de desenvolvimento PHP


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 CtrlP

Site 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 :)


SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com