Arquivo

Textos com Etiquetas ‘Vim’

Mudando o diretório dos arquivo .swp e de backup do Vim

vim.gifSe você curte o vim e controle de versão cvs ou svn já deve ter passado pela situação de ver vários arquivos .swp ou até mesmo os de backup do tipo “arquivo~” quando você está comparando a sua cópia local com a cópia remota e ter que ficar “pulando” esses arquivos na hora do commit, convenhamos, é um processo meio chato.

Portanto, com a inserção de 2 novas linhas no seu .vimrc (_vimrc, _gvimrc no windows) você resolve o problema.

set directory=/home/usuario/.vimbkp,/tmp "nesse caso você terá 2 cópias dos arquivos .swp
set backupdir=/home/usuario/.vimbkp,/tmp "nesse caso você terá 2 cópias dos arquivos "arquivo~" de backup
Categories: Miscelânea, Vim Tags:

Duas dicas rápidas para o vim

Para quem gosta daquele esquema de fechar automáticamente parênteses, chaves, colchetes, aspas duplas e aspas simples, que vários editores possuem. Basta adicionar o seguinte trecho de código ao seu ~/.vimrc

inoremap  { {<CR>}<C-O>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>

Agora se você é fã do famoso line highlight, adicione também ao seu ~/.vimrc

set cursorline
hi CursorLine ctermbg=blue cterm=none
Categories: Vim Tags:

Utilizando folding no vim

vim.gifVamos imaginar o seguinte, você abrindo um arquivo com diversas linhas, diversas “funções/métodos” e se não estiver com as marcações para folding, você verá que a apresentação não é uma das melhores.

Agora abra o arquivo MDB2.php que está no pacote PEAR::MDB2 que com suas mais de 4.000 linhas, devidamente marcados com os foldings, olha como fica joiado

folding.jpg

Mas como fazer para que seu arquivo fique assim? Basta adicionar ao seu .vimrc o seguinte:

1
set fdm=marker

Existem diversas formas de marcações para o folding, não vou descrever todas as formas, apenas a que eu uso, acho interessante e prática, mas cada um pode utilizar a que achar melhor ok.

A geração dos foldings são muito fáceis, primeiro coloque o vim em modo visual <ESC>v e selecione a área que deseja que seja criado o folding, depois basta apertar as telcas zf e pronto, o folding está criado. Para abrir ou fechar o folding, use za, quer abrir todos os foldings zR e para fechar zM. Basicamente e muito simplificado os comandos mais utilizados seriam esses (IMHO).

Uma coisa que gosto de fazer em meus códigos é colocar um pequeno comentário na mesma linha da declaração da função e logo após criar o folding, o resultado é ótimo, veja, como fica organizado o código.

folding-php1.jpg

folding-php21.jpg

Como disse, da para fazer o folding de diversas maneiras, publiquei a maneira que eu acho mais simples e prática, se você tiver algo a acrescentar ao artigo, poste nos comentários :-) T+

Categories: Console, Linux, Vim Tags: , , ,

Integrando o manual do php ao VIM

vim.gifContinuando com a série de artigos sobre o vim, vamos fazer algo simplismente fodástico, integrar o manual do php! Que tal você simplismente digitar

1
:help funcao_php

e ele mostrar exatamente a função no manual? Joia não? Então, para isso basta você adicionar ao seu .vimrc as seguintes linhas:

1
2
3
if has("autocmd")
autocmd BufNewFile,Bufread *.php,*.php3,*.php4 set keywordprg="help"
endif

Feito isso, diga para o vim onde ta seus manuais (você pode ter mais de um, é claro, e também de outras linguagens), no caso, o do php que é a linguagem que eu utilizo diariamente, portanto foi o convidado da vez.

1
helptags /home/USUARIO/.vim/doc

Agora so falta o manual, que como sou um cara legal, vou deixar tudo mastigado para você, clique aqui e salve o arquivo no seu ~/.vim/doc

Pronto! Tudo certo, faça um teste agora, abra um arquivo php e digite :help funcao<cr> e pronto, você terá uma lista das funções, e digo mais, se você seguiu o artigo anterior que falo sobre utilizar a tecla TAB para autocompletar, você poderá digitar apenas o início da função e terá uma lista de funções correspondentes, como na imagem abaixo

vim-helptags.jpg

Ah, mas você gostaria que o seu manual estivesse com a última atualização do mundo, do universo e ainda com todos os comentários? Então, adicione a linha abaixo ao seu .vimrc e coloque o cursor encima de uma função php e aperte F10 e veja, lembrando que há a dependencia do navegador para console lynx.

1
map  "vyiw:new:execute "r!lynx --dump http://br.php.net/manual/en/function.".@v.".php":set nonu:1

Pronto, espero que tenham gostado, T+

Categories: Console, Linux, Vim Tags: , , ,

Autocompletando no vim + dicionário PHP

vim.gifNesse artigo sobre o vim, falei um pouco sobre a personalização do .vimrc, agora vamos adicionar um dicionário das funções php para que você consiga autocompletar suas funções como aqueles editores pesados como o phpeclipse faz, mas ao invés de usarmos o CTRL+espaço, vamos usar apenas o TAB.

  1. Crie os diretórios para plugin e doc no vim
    • mkdir -p ~/.vim/doc
    • mkdir -p ~/.vim/plugin
  2. Baixe e instale o plugin para o vim SuperTab.
  3. Baixe a lista das funções php do site do Lerdorf e salve em ~/.vim/doc

Agora para tudo funcionar, basta inserir a linha abaixo no seu .vimrc:

1
2
3
if has("autocmd")
autocmd FileType php  set complete-=k/home/USUARIO/.vim/doc/funclist.txt complete+=k/home/USUARIO/.vim/doc/funclist.txt
endif

Lembre de trocar USUARIO pelo seu usuário no sistema.

Pronto, se você fez tudo corretamente, faça um teste:

1
vim teste.php
1
2
3
<?php
eregi_re
?>

deve ficar:

1
2
3
<?php
eregi_replace
?>

T+

Categories: Console, Linux, PHP, Programação, Vim Tags: , , ,

Personalizando seu .vimrc

vim.gifSe tem algo que me faz gosto em programar, é a extensibilidade do editor vim, há anos uso ele diariamente e confesso que no início foi um pouco dificil de me acostumar, mas depois que se acostuma os ganhos em agilidade são imensos, estou pensando em fazer vários mini tutoriais a respeito do vim, o que acham? O propósito desse artigo é falar um pouco sobre a personalização do seu .vimrc. Antes de tudo, abra um terminal e digite os 2 comandos abaixo:

cd vim .vimrc

Pronto, com o arquivo aberto vamos la! Bem, como programador php, a maioria dos arquivos que eu abro são com extensões .php o que o vim syntaxia ele automaticamente pois eu tenho a linha abaixo habilitada

syntax on

Mas e quando um merda santo resolve criar uma classe php e coloca como extensão .cls, .inc ou ainda .module? Ai o vim não syntaxia automaticamente, lascou né? Não, basta colocar:

au BufRead,BufNewFile *.cls,*.inc,*.module set filetype=php

Aqui transformando os arquivos com extensões .tpl e .html como html

au BufRead,BufNewFile *.tpl,*.html set filetype=html

Resolvido o problema da syntax, vamos colocar mais algumas opções, lembrando que as aspas duplas querem dizer comentários ok.

set nu "colocar as linhas automaticamente"
set cindent "indentação no estilo C"
set is hls ic scs "opções de busca"
set sm "mostra o início do bloco que acabou de ser fechado, sm é o mesmo que ShowMatch"
set wildmode=longest,list "para completar com TAB igualzinho o bash faz"
set ai "auto indent"
set shiftwidth=4 "se mudar o valor eu te mato :-P, numero de espaço usado quando rolar o autoindent"
set softtabstop=4 "se mudar aqui, tb te mato! numero de espaços que deve-se dar quando apertar o TAB"
set tabstop=4 "por favor, também nao mude isso! numero de espações que deve-se voltando quando apertar o backspace num tab"
set bs=2 "para o backspace se comportar como a gente gosta"
set fdm=marker "o modo como o folding deverá trabalhar, prometo escrever um artigo falando sobre o folding no vim"
set termencoding=utf8 "Yeah!! UTF-8 em tudo!"
filetype plugin on
filetype indent on

Sou um preguiçoso, por isso me tornei programador, então, vai ai algums atalhos que uso constantemente para debugar partes dos meus scripts

1
2
3
4
5
6
7
" atalhos
abbreviate epre echo "&lt;pre&gt;&lt;hr&gt;"; print_r($); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate epres echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_SESSION); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate eprep echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_POST); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate epreg echo "&lt;pre&gt;&lt;hr&gt;"; print_r($_GET); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate eprer echo "&lt;pre&gt;&lt;hr&gt;"; print_r($res); echo "&lt;/pre&gt;&lt;hr&gt;"; die();
abbreviate ds die($sql);

Agora vamos mapear mais alguns atalhos?

"isso aqui é FERA quando tem algum zoiudo vendo o que vc ta fazendo, aperte F8 e a tela fica embaralhada e F8 para voltar ao normal"
map  ggVGg?
"isso é FODA, coloque  o cursor encima de alguma funcao PHP e aperte o F10 e ele vai buscar no site do php.net a definição para ela, sinistro heim?"
map  "vyiw:new:execute "r!lynx --dump http://br.php.net/manual/en/function.".@v.".php":set nonu:1
"sabe aqueles ^M xaropes que ficam no final de arquivos salvos pelo windows? Aperte F2 e suma com eles :-D"
map  :%s/\r//g
"útil para quando vc deixa a tecla CAPS LOCK ativada e nao viu, umas abreviações porretas"
cab W w | cab Q q | cab Wq wq | cab wQ wq | cab WQ wq
Bem, por hora é só, aguarde que teremos outros artigos sobre o vim, tem muita coisa para falar dele, t+
Categories: Console, Linux, Vim Tags: , ,