Vim/Hábitos para edição efetiva
Introdução
editarUm dos grandes problemas relacionados com os softwares é sua subutilização. Por inércia o usuário tende a aprender o mínimo para a utilização de um programa e deixa de lado recursos que poderiam lhe ser de grande valia. O mantenedor do Vim Bram Moolenaar recentemente publicou vídeos e manuais sobre os "7 hábitos para edição efetiva de textos", este capítulo pretende resumir alguns conceitos mostrados por Bram Moolenaar.
Mova-se rapidamente no texto
editar- Use marcas
ma ................ em modo normal cria uma marca a 'a ................ move o cursor até a marca a d'a ............... deleta até a marca a y'a ............... copia até a marca a
Além das marcas o vim permite a movimentação por outros métodos
gg ................ vai para a linha 1 do arquivo G ................. vai para a última linha do arquivo 0 ................. vai para o início da linha $ ................. vai para o fim da linha fx ................ pula até a próxima ocorrência de x dfx ............... deleta até a próxima ocorrência de x g, ................ avança na lista de alterações g; ................ retrocede na lista de alterações p ................. cola o que foi deletado/copiado abaixo P ................. cola o que foi deletado/copiado acima H ................. posiciona o cursor no primeiro caractere da tela M ................. posiciona o cursor no meio da tela L ................. posiciona o cursor na última linha da tela
- Use asterisco * para localizar a palavra sob o cursor
- Use o percent % serve para localizar fechamento de parêntese chaves etc
'. apostrofo + ponto retorna ao último local editado '' retorna ao local do ultimo salto
Suponha que você está procurando a palavra 'argc':
/argc
Digita 'n' para buscar a próxima ocorrência
n
Um jeito mais fácil seria:
"coloque a linha abaixo no seu vimrc :set hlsearch
Agora use asterisco para destacar todas as ocorrências do padrão desejado e use a letra 'n' para pular entre ocorrências, caso deseje seguir o caminho inverso use 'N'.
Use quantificadores
editarEm modo normal você pode fazer
10j ............. desce 10 linhas 5dd ............. apaga as próximas 5 linhas :50 ............. vai para a linha 50 50gg ............ vai para a linha 50
Veja também: movendo
Não digite duas vezes
editar- O vim complementa com tab
- Use macros veja na seção repetição de comandos
- Use abreviações coloque abreviações como abaixo em seu ~/.vimrc
as abreviações fazem o mesmo que auto-correção e auto-texto em outros editores
iab tambem também iab linux GNU/Linux
- No modo insert você pode usar
Control + y ......... copia caractere a caractere a linha acima Control + e ......... copia caractere a caractere a linha abaixo
- Para um trecho muito copiado coloque o seu conteúdo em um registrador
"ayy ........... copia a linha atual para o registrador a "ap ........... cola o registrador a
Crie abreviações para erros comuns no seu arquivo de configuração (~/.vimrc)
iabbrev teh the syntax keyword WordError teh
As linhas acima criam uma abreviação para erro de digitação da palavra 'the' e destaca textos que você abrir que contenham este erro.
Edite vários arquivos de uma só vez
editarO Vim pode abrir vários arquivos que contenham um determinado padrão. Um exemplo seria abrir dezenas de arquivos html e trocar a ocorrência
bgcolor="ffffff"
Para
bgcolor="eeeeee"
Usaríamos o seguinte comando
vim *.html :bufdo :%s/bgcolor="ffffff"/bgcolor="eeeeee"/g :wall :qall
Ainda com relação à edição de vários arquivos poderia-mos abrir alguns arquivos txt e mudar de um para o outro assim:
:wn
O w significa gravar e o 'n' significa next, ou seja gravaria-mos o que foi modificado no arquivo atual e mudaríamos para o próximo.
Use folders 'dobras'
editarO vim pode ocultar partes do texto que não estão sendo utilizadas permitindo uma melhor visualização do conteúdo. Veja a seção usando folders
Use autocomandos
editarNo arquivo de configuração do vim ~/.vimrc você pode criar comandos automáticos que serão executados diante de uma determinada circunstância
O comando abaixo será executado em qualquer arquivo existente, posicionando o cursor no último local editado
autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif
Grupo de comandos para arquivos do tipo html/htm. Observe que o autocomando carrega um arquivo de configuração do vim exclusivo para o tipo html/htm e no caso de arquivos novos "BufNewFile" ele já cria um esqueleto puxando do endereço indicado
augroup html au! <--> Remove all html autocommands au! au BufNewFile,BufRead *.html,*.shtml,*.htm set ft=html au BufNewFile,BufRead,BufEnter *.html,*.shtml,*.htm so ~/docs/vim/.vimrc-html au BufNewFile *.html 0r ~/docs/vim/skel.html au BufNewFile *.html*.shtml,*.htm /body/+ " coloca o cursor após o corpo <body> au BufNewFile,BufRead *.html,*.shtml,*.htm set noautoindent augroup end
Documentação on-line sobre autocomandos do vim http://www.vim.org/htmldoc/autocmd.html
Use o file explorer
editarO vim pode navegar em pastas com o comando
vim .
Você pode usar 'j' e 'k' para navegar e Enter para editar o arquivo selecionado
Torne as boas práticas um hábito
editarPara cada prática produtiva procure adquirir um hábito e mantenha-se atento ao que pode ser melhorado. Imagine tarefas complexas, procure um meio melhor de fazer e torne um hábito.
Referências
editar- http://www.moolenaar.net/habits_2007.pdf por Bram Moolenaar
- http://vim.wikia.com/wiki/Did_you_know