VIM sem preconceito
25/10/2017Você leu o título e já ficou assustado que eu sei, mas estou aqui hoje para acabar com o preconceito que muita gente tem com o VIM, o lendário editor de textos que roda direto do Terminal e que fez mais de 1 MILHÃO (e contando) de devs ficarem sem saber como sair dele.
Apesar de ter muito texto, este post também pode ser considerado uma cheatsheet.
Entrando no Vim
Para começar a editar um arquivo, digite:
vi ideia-genial.md
E você está dentro! Mas, e para sair?
Saindo do Vim
ATENÇÃO! Para sair do Vim é necessário um esforço descomunal e muita atenção, pois qualquer passo em falso pode ser fatal:
- Aperte a tecla “esc”;
- Digite “:q”;
Pronto, você saiu.
Mas pera aí, agora que chegou tão longe não vai querer também saber um pouquinho mais de como usar o editor em seu dia-a-dia?
Ótimo. Então vamos lá!
Tenha Modos
Voce está em um editor de textos e espera no mínimo poder teclar umas letras, mas ao entrar no Vim você percebeu que ao digitar qualquer coisa o texto não é inputado ou algo de estranho é exibido la no rodapé do terminal. Isso é porque voce está no modo “Normal”, onde o editor irá interpretar comandos e executá-los. Por questões de simplicidade, muitos desses comandos são apenas uma letra (“u” para desfazer) ou palavras bem pequenas (set, retab…).
Os tres modos do VIM sao:
- Normal: Onde voce vai entrar os comandos. É acessado com a tecla “esc”;
- Insert: Onde voce vai digitar suas coisas. É acessado com a tecla “i” a partir do modo Normal ou Visual;
- Visual: Onde voce vai selecionar o texto e fazer operacoes como copiar e colar (principalmente). É acessado com a tecla “v” a partir do modo Normal;
Digitando coisas
Como dito acima, para poder começar a teclar você precisa primeiro entrar no modo Insert, pressionando a tecla “i” no modo Normal. Ao terminar de digitar, aperte “esc” para voltar ao modo Normal.
Salvando suas alterações
Agora que você digitou bastante, vai querer salvar o seu trabalho. Não tem erro: volte para o modo Normal (tecla “esc”) e digite o comando “:w” e tá guardado!
Você também pode fazer uma combinação de comandos para salvar e sair do programa. Tal combinação seria “:wq”. Difícil demais.
Ah, e para sair sem salvar, digite “:q!”.
Funções de máquina do tempo (ou quase isso)
Ninguém é perfeito (caso ainda não saiba) e você provavelmente vai cometer algum erro enquanto estiver digitando e vai querer desfazê-lo. Ainda bem que no Vim isto é SUPER SIMPLES: volte para o modo Normal (tecla “esc”) e aperte “u” (ou digite o comando “:undo”). Pronto.
E você vai querer também refazer algo digitado. Para isso, faça a combinação de teclas “CTRL+R” no modo Normal.
Copiando e colando
O atalho mais adorado de todos nós é o CTRL+C e o CTRL+V (depois do CTRL+ALT+Del, se você for usuário do Windows 😛) com toda certeza, e ele não poderia ficar de fora do Vim. É bom lembrar que esta função vale apenas para o clipboard do Vim; se você deseja copiar/colar algo de fora do editor, utilize os atalhos do seu emulador de Terminal (se estiver no Linux, provavelmente será CTRL+Shift+C e CTRL+Shift+V).
Para copiar/recortar:
- Posicione o cursor onde deseja começar a seleção (pode ser no modo Normal ou Insert);
- Entre no modo Visual (entre no modo Normal com “esc” e depois aperte “v”);
- Mova o cursor com as setas do teclado até selecionar o texto desejado;
- Aperte “y” para copiar ou “d” para recortar;
BÔNUS: Para copiar uma linha inteira (sem o caracter de nova linha), aperte “y$”. De nada.
Para colar:
- Posicione o cursor onde vai inserir o texto copiado/recortado (modo Normal ou Insert);
- No modo Normal, aperte “p” para inserir antes do cursor ou “P” para inserir depois do cursor.
Tabs
Também existem comandos específicos para tabulação do texto digitado. Por padrão, o Vim insere 1 caracter de tabulação ao pressionar a tecla Tab, mas se você quiser mudar para espaços, vá para o modo Normal e digite “:set expandtab”. Com isso, todo novo “tab” inserido no texto será convertido como 4 espaços. Para alterar toda a tabulação do arquivo para espaços, use o comando “:retab”.
Para mudar a quantidade de espaços inseridos pela tecla “tab”, use o comando “:set tabstop=2”, mudando o “2” pelo número que quiser.
Para mudar a quantidade de espaços inseridos para indentação, use o comando “:set shiftwidth=2”, mudando o “2” pelo número que quiser.
Algumas configurações úteis
Para melhorar um pouco sua experiência com este espetacular editor, eis alguns comandos de configuração que podem ser executados pelo modo Normal e podem estar no seu .vimrc
. No meu caso, gosto de manter minhas preferências no .vimrc
para evitar a fadiga.
$ cat ~/.vimrc
# Exibe o número das linhas do lado esquerdo
set number
# Habilita o carregamento de configs que estão dentro de um arquivo
# Exemplo: Ao encontrar /* vim: tw=60 ts=2: */ no arquivo que você
# acabou de abrir, o Vim vai aplicar a configuração
# tw=60 e ts=2, ignorando as suas preferências e mantendo
# o padrão daquele arquivo aberto.
set modeline
# Habilita o syntax highlighting
syntax on
# Usa 256 cores (seu terminal também deve dar suporte à 256 cores para isso funcionar)
set t_Co=256
# Muda Tabs para espaços
set expandtab
:q
Como pode ver, não existe mistério no Vim. É normal que fiquemos com o pé atrás quando nos deparamos com os diversos atalhos e combinações de teclas para fazer algo trivial como copiar e colar um texto, já que estamos (mal) acostumados com interfaces gráficas e ferramentas que fazem tudo para nós antes mesmo de darmos um clique, mas é sempre bom saber lidar com programas mais “primitivos” e CLIs, pois mais cedo ou mais tarde você vai precisar fazer um bugfix direto no servidor e não vai ter Sublime Text nem Windows Explorer para lhe auxiliar (a não ser que você esteja usando Windows Server ou VNC, aí tudo bem).
Referência: Vim Tips Wiki