Vim/Hábitos para edição efetiva
Introdução
[editar | editar código-fonte]Um 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 | editar código-fonte]- 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
[editar | editar código-fonte]Em 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 | editar código-fonte]- 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
[editar | editar código-fonte]O 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'
[editar | editar código-fonte]O 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
[editar | editar código-fonte]No 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
[editar | editar código-fonte]O 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
[editar | editar código-fonte]Para 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 | editar código-fonte]- http://www.moolenaar.net/habits_2007.pdf por Bram Moolenaar
- http://vim.wikia.com/wiki/Did_you_know