dois:pontos

Vim básico para iniciantes

- 8 min

Na primeira parte desta série, discorri sobre o porquê de ter trocado o VS Code pelo Neovim, mas não cheguei a fundo nas funcionalidades e nas diferenças. Neste artigo vou me aprofundar nesses aspectos.

Como o Vim edita os textos

Em outros editores, basta clicar e começar a escrever. Salva-se o arquivo comum clique em "Salvar" no menu ou utilizando o atalho de teclado correspondente para a ação.

No Vim, é completamente diferente: o programa começa em um modo de edição rápida, que não habilita a inserção de textos. Este modo aceita a navegação e comandos para alterar o texto. Para modificar e navegar, usam-se comandos, que pode ser simples como uma tecla de atalho, ou compostos, onde se usam mais teclas para atingir determinado objetivo.

Para quem nunca usou, isso soa muito difícil e assustador, mas não é. Treinando, você acostuma e vê a praticidade.

Modo normal

Modo normal

Este é o modo padrão do editor. Para acessá-lo usa-se sempre a tecla ESC.

Navegação pelo texto

A navegação funciona como na maioria dos editores, direcionais para mover o cursor na tela, PageUp ou PageDown para mover-se entre "páginas", Home ou End para ir para o começo ou final da linha. Fora esses atalhos, existem outros que são feitos apenas apertando teclas normais como letras e símbolos. Eis alguns deles:

Comandos simples:

  • G: posiciona o cursor no final do arquivo.
  • L: posiciona o cursor no final da tela. O L vem de Low, embaixo em inglês.
  • M: posiciona o cursor no meio da tela. O M vem de Middle, meio em inglês.
  • H: posiciona o cursor no começo da tela. Note que isto não é necessariamente o começo do arquivo. H vem de High, alto em inglês.
  • 0: move o cursor para o início da linha.
  • w: move o cursor para o início da próxima palavra. O w vem de word, palavra em inglês.
  • b: move o cursor para o início da palavra anterior. O b vem de back, voltar em inglês.
  • e: move o cursor para o final da próxima palavra. O e vem end, final em inglês.
  • J: junta linhas.
  • %: mostra o escopo correspondente, dentro de parênteses, colchetes ou chaves.
  • .: repete qualquer operação feita anteriormente.

Comandos compostos:

  • gg: posiciona o cursor no começo do arquivo.
  • Número + G: vai para uma linha específica. Ex.: 23G vai para a linha 23 do documento.
  • f + caractere: move o cursor para a próxima ocorrência do caractere escolhido. Ex: f( move o cursor para o próximo abre parênteses.
  • Número + w, b ou e: move o cursor para o início/final da enésima palavra após a posição atual. Ex.: 2w move o cursor para o início da segunda palavra

Edição do texto

Edições simples podem ser feitas neste modo.

Comandos simples:

  • x ou delete: apaga o caractere sob o cursor.
  • u: desfaz as últimas alterações.
  • r: substitui o caractere sob o cursor pelo próximo que será digitado.

Comandos compostos: remoção de conteúdo

Para apagar conteúdo, pressiona-se a tecla d; funciona de maneira parecida ao comando cortar presente em todos os editores. A forma a qual ele será apagado/recortado vai depender da próxima letra digitada:

  • d: "deleta" a linha inteira. dd equivale ao CTRL + X no VS Code.
  • Número + d: remove várias linhas. 2134dd apagará 2134 linhas do arquivo.
  • w: apaga até o final da palavra.
  • Número + w: apaga determinado número de palavras. Ex.: d2w apaga duas palavras.
  • i + caractere: remove o conteúdo delimitado por um caractere. Ex.: di{ remove um conteúdo entre chaves. Um jeito fácil de entender é memorizar a frase em inglês "delete inside {}", "apagar dentro das chaves".
  • i + w: apaga a palavra inteira.
  • i + t: remove tudo que estive dentro de uma marcação HTML.
  • t + caractere: remove o conteúdo até determinado caractere. Ex.: dt. remove um conteúdo até o próximo ponto final. Lembre-se da expressão "delete till .", "apagar até o ponto final".
  • $: apaga de onde está o cursor até o final da linha. O atalho Shift + d, tem o mesmo efeito.

Comandos compostos: cópia de conteúdo

A cópia funciona basicamente da mesma forma que a remoção. O comando usado para a cópia é y, que vem da palavra yank, "puxar" em inglês. As mesmas combinações de teclas funcionam, mas aplicadas à cópia:

  • y: copia a linha inteira. yy equivale ao CTRL + C no VS Code.
  • Número + y: copia várias linhas. Ex.: 1873yy copiará 1873 linhas.

E assim por diante, conforme o exemplo anterior.

Colando conteúdo

Para colar o conteúdo, usa-se o comando p, de paste, "colar" em inglês. Vale ressaltar que todo conteúdo deletado fica na área de transferência. Usando o p, a cola será feita após o cursor e usando P a mesma será feita antes do cursor.


Modo de inserção

Modo de inserção

Ao entrar nele tudo é bastante familiar, pois é como todo editor geralmente abre por padrão. Existem diversas formas para acessar o modo para inserir texto:

  • i: abre o modo de inserção e posiciona o cursor antes do caractere atual.
  • a: abre o modo de inserção e posiciona o cursor após caractere atual.
  • s: abre o modo de inserção e apaga o caractere sob o cursor.
  • I: posiciona o cursor no começo da linha para inserir conteúdo.
  • A: posiciona o cursor no final da linha para adicionar conteúdo.
  • o: insere uma linha abaixo do cursor e entra no modo de inserção.
  • O: insere uma linha acima do cursor e entra no modo de inserção.

Comandos compostos: mudar conteúdo

Outro modo de entrar no modo de inserção é usar o comando c, de change ("mudar" em inglês). Este segue o mesmo padrão dos comandos de remoção e cópia descritos anteriormente. Ele recorta o conteúdo e abre o modo para inserção, muito prático. Como exemplo, imagine que tenhamos a seguinte marcação em HTML:

<p class="texto-aleatorio-em-latim">
  Lorem ipsum dolor sit amet, consectetur <strong>adipiscing elit</strong>.
  Quisque eget lobortis velit. Maecenas nec molestie eros, eu efficitur erat.
  Nunc nec congue justo, et commodo dolor. Aliquam <em>facilisis</em> urna eget
  massa pulvinar, in bibendum ante convallis.
</p>

Basta posicionar o cursor na marcação e digitar cit. A marcação fica assim:

<p class="texto-aleatorio-em-latim">|</p>

O "|" acima representa onde ficará o cursor, pronto para inserir o novo texto.


Modo de substituição

Modo de substituição

Este modo é basicamente o mesmo que apertar a tecla Insert: o texto digitado sobrescreve o anterior. Ele é acessado pelo atalho R.


Modo visual

Modo visual

O modo visual habilita a seleção de texto. É ativado com a tecla v. Para selecionar o texto, basta usar os direcionais. Clicar com o botão direito do mouse também ativa o modo, caso esteja configurado.

Os comandos feitos após o modo visual só afetarão a área selecionada.


Modo de comando

Modo de comando

Este modo é um dos mais usados porque ele é o equivalente a uma barra de ferramentas. É através dele que salvamos o arquivo. Ele é ativado pelo atalho :e a partir daí basta escrever o comando desejado e apertar Enter. Abaixo sequem alguns exemplos.

  • w ou write: salva o arquivo atual.
  • q ou quit: fecha o arquivo. Adicione o ! para forçar a saída caso ele reclame de alterações não salvar.
  • x ou wq: salva e fecha o arquivo.
  • h ou help: entra na ajuda do programa.
  • s: entra no modo localizar substituir a partir da linha atual. Ex.: s/herrado/certo substituirá a palavra "herrado" pela "certo". s/herrado/certo/g fará a mesma coisa, em todas as ocorrências na linha. s/herrado/certo/g 8 efetua a troca das palavras em todas as ocorrências das próximas 8 linhas.

Curiosidades

Direcionais

Apesar de poder usar o direcional normalmente, o Vim incentiva o uso das teclas h,j, k, l para mover o cursor para a esquerda, baixo, cima e direita, respectivamente. Isso se deve ao fato de o computador usado na época pelo desenvolvedor do Vim usava um teclado em que os direcionais ficavam nessa teclas.

ADM 3a Teclado do Computador ADM 3a

Os mais aficionados abominam o uso dos direcionais. De fato, quando você se acostuma, você pode ser bastante produtivo, pois as teclas estão mais próximas. Pessoalmente eu não uso isto

Tecla ESC

No mesmo teclado acima, o Esc ficava quase na mesma posição da tecla Caps Lock. Ao saber disto, nota-se que escolha não foi tão estranha assim, pois a posição do Caps Lock é muito mais cômoda do que a do Esc atual. É possível configurar o editor para essa troca. Eu mesmo não a fiz.


Encerro este artigo por aqui! Não dá para ensinar tudo do programa, infelizmente: não sei tudo dele e um artigo de blog não é suficiente para este fim. Apesar disto, acredito que este é o básico para você iniciar neste editor tão "assustador".

Sugiro que como lição de casa, use o "Vim Tutor": é um comando disponível no terminal assim que o Vim é instalado no sistema. Ao escrever vimtutor no terminal, abre-se uma instância do Vim sem quaisquer extensões carregadas, com um texto bem didático que ensina mais a fundo cada comando que citei aqui, com exercícios práticos.

No próximo artigo, vou ensinar a como deixar o Vim mais útil e bonito. Porque convenhamos, ele é extremamente feio de início.

Até a próxima!

Links

Apoie este blog

Se este artigo te ajudou de alguma forma, considere fazer uma doação. Isto vai me ajudar a criar mais conteúdos como este!

Clique aqui!

Comentários