Introdução ao Vim
Publicado em 24/03/2017
A pergunta que não quer calar: por que diabos usar um editor do tempo do onça como o Vim, quando temos à nossa disposição tantos editores gráficos poderosos e cheios de recursos e plugins tais como Sublime, Atom e VSCode ou muito mais simples de usar, como o Gedit, Leafpad ou Nano?
A principal razão, sem dúvida, é porque o Vim é onipresente em todas as distribuições baseadas em Unix. Imagine-se num sistema completamente estranho para você... neste cenário, ter um editor de texto conhecido ao seu dispor é uma mão na roda, certo?!
Outra vantagem, seria quando estamos numa sessão SSH muito lenta, com alta taxa de latência, pois o Vim é um editor completíssimo, com comandos disparados na maioria das vezes por uma única tecla, ou um par delas.
Na verdade, depois que você se acostumar e decorar os comandos, não vai querer saber de outro editor para usar no terminal. É um verdadeiro vício entre os administradores de sistema!
Vi
ou Vim
?
Vim é um acrônimo para Vi iMproved, ou seja "Vi melhorado". Como o nome indica, portanto, o Vim apresenta muitos recursos extras em relação ao seu avô, o Vi.
Muitas distribuições, todavia, instalam as duas versões, ou fornecem um link simbólico de vi para vim. No Ubuntu, aliás, o comando vi executa o vim no modo de compatibilidade. O principal problema nesse modo é que as teclas de movimentação (setas), home, pgUp e pgDwn só funcionam no modo de comando.
Se quiser sair do modo de compatibilidade com o vi, basta digitar :set nocp
. Para manter essa mudança de forma permanente, crie o arquivo ~/.vimrc
, se ainda não existir, e acrescente esta linha:
set nocp
Memorizando comandos
Para quem conhece bem o inglês, fica fácil memorizar os comandos do Vim. Por exemplo: d = delete (apagar), y = yank (arrancar), p = paste (colar), w = write (gravar) e q = quit (sair). É bem intuitivo, exceto talvez para os absolutamente neófitos.
Começando...
O grande nó da questão para os novos usuários é que o Vim opera em modo dual: o modo de comando e o modo de edição (entrada de texto). Quando inicia, Vim entra automaticamente no modo de comando. Vamos então ao básico do básico:
- Digite i ou pressione a tecla Insert para entrar no modo de edição.
- Tecle Esc para voltar ao modo de comando.
Para iniciar um arquivo, use:
vim
abre um documento vaziovim [nome-do-novo-arquivo]
abre e nomeia um novo arquivovim [nome-do-arquivo]
abre um arquivo já existente
No modo de edição, você pode navegar pelo documento como faz em qualquer outro editor, usando as teclas de setas. Home
vai para o começo do parágrafo e End
vai para o fim dele. Ctrl-Home
vai para o início do documento e Ctrl-End
vai para o final.
O Vim
é o rei do teclado
Se você estiver usando um desses teclados compactos que não possuem teclas de movimentação, ou se for bom de digitação e quiser acelerar sua produtividade, entre no modo de comando e use:
j
move o cursor uma linha para baixoi
move o cursor uma linha para cimaG
vai para o fim do documentogg
vai para o começo do documentoh
move o cursor para a esquerda, um caracter de cada vezl
move o cursor para a direita, um caracter de cada vez
Salvando as mudanças e saindo do Vim
Certifique-se de entrar no modo de comando teclando Esc
, digite :w
e Voilá! - verá uma mensagem dizendo algo como: "novo-arquivo" [Novo] 1L, 7C gravado(s)
:sav nome-do-arquivo
dá nome a um novo documento ou salva um arquivo com um novo nome.
Para gravar suas alterações e sair do Vim
, entre no modo de comando (Esc
) e digite :x
ou :wq
, seguido do Enter
.
Estando no modo de comando, e já tendo salvo o documento, :q
encerra o Vim
. Para forçar a saída sem gravar eventuais alterações, use :q!
.
Alguns comandos comuns para edição
u
comuta entre desfazer e refazer alteraçõesr
substitui o caracter sob o cursorx
apaga o caracter sob o cursordw
apaga uma única palavra, a partir do cursorD
apaga até o final da linha, a partir do cursordd
corta a linha sob o cursorNdd
corta N linhas; p.ex. 2dd elimina duas linhas a partir da linha correnteyy
copia a linha correntep
cola tudo o que tiver sido cortado ou copiado:set number
mostra o número das linhas:set nonumber
desativa a numeração de linhas
Aprofundando no assunto
Use o comando :help
para consultar a extensa documentação interna do Vim
, que só não estará disponível se a distribuição tiver instalado a versão vim-tiny
.
Para um tutorial completo, digite o comando vimtutor
no prompt
do shell
. Vai levar algo entre 30 minutos e 1 hora para completar.