Usando VIM pela segunda vez

Um dos mais famosos editores de texto presente na maioria dos sistemas. Contarei nesse post minha segunda chance ao VIM e como ele me impressionou.


João Oliveira

Minha segunda Chance ao VIM:

Minha primeira experiência utilizando o editor de texto VIM não foi das melhores, em questão de segundos cai no meme de “como eu saio do VIM” teclando “CTRL+S” enquanto tentava salvar um arquivo de código com a tela completamente congelada. Porém, um amigo havia me dito sobre as vantagens de se utilizar o VIM, justamente pelo fato dos comandos agilizarem certos processos, a início eu olhei torto e pensei – “Pra que decorar mais comando, eu só quero escrever código e resolver meu problema”, mas com o passar do tempo o Visual Studio, meu editor de código principal, ficava a cada dia mais lento e cheio de plugins que eu nem sabia pra que servia, sem contar as mensagens de pop-up e atualizações infinitas no background. Decidi então me aventurar no VIM e escrever esse post sobre minhas experiência com ele.

O início de tudo (Modos):

Primeiro de tudo existem quatro modos quando se está utilizando VIM:

  • Comando
  • Inserção
  • Normal
  • Visual

Quando você abre um arquivo no VIM você estará no modo normal. Para editar o arquivo você precisa entrar no “Modo de Inserção”, podendo utilizar a tecla “i” para este fim. Enquanto se está no modo normal você pode utilizar diversos comandos para diferentes tarefas. A ideia de ser utilizar comandos para certas tarefas, vem do seu criador Bram Moolenaar o qual idealizou um projetoa digitação ergonômica, eficiente e sem muitos movimentos de mouse que possam encomodar quem trabalha horas a frente de um computador. O modo normal agirá como um Hub central para todos os modos, nele você executa códigos e muda entre modos. No modo de inserção é onde de fato você insere código/texto. A seguir, é ilustrado uma figura do teclado e sua configuração para utilização do VIM.

 

Para entrar no modo visual basta teclar “v”, porém falaremos dele um pouco mais na frente quando estivermos trabalhando comandos de copiar e colar. A respeito do modo de inserção existem diferentes teclas para este fim. A seguir irei listar algumas delas.

Teclas para entrar no modo de inserção:

  • i, I
  • o, O
  • a, A
  • s, SS
  • C

Agora veremos a diferença entre as teclas. Quando você quer editar e começar antes do cursos, você deve apertar a tecla “i” minúsculo, após o curso você deve utilizar a tecla “a” minúsculo, se atente ao case sensitive. No caso do “I” maiúsculo seria para entrar no modo de edição no início da linha, logo o “A” maiúsculo e para entrar no modo de edição no finalda linha. Já o “o” serve para entrar no modo de inserção e criar um linha imediatamente acima, enquanto que o “O” criaráum linha acima já no modo de inserção. Com o “s” você entrará no modo de inserção e irá deletar uma célula a direita, já o”S” irá deletar a linha inteira. Prático não é mesmo? Em relação ao “C” ele é ainda mais cirúrgico, ele irá deletar tudo a direita do curso naquela linha e entrar no modo inserção.

Tecla para entrar no modo de comando:

  • :

Outros comandos bem legais:

  • h, j, k, l, são respectivamente, esquerda, abaixo, acima e direita (Modo normal), teclas para navegação na tela.

Paginação:

  • ctrl + u (seria algo como go upper)
  • ctrl + d (seria algo como go down)

Caso você deseje ir para o início do arquivo, você pode estar utilizando:

  • gg - te leva pro início do arquivo
  • GG - te leva para o final do arquivo

Esse é bem legal,e que tal ir direto a uma determinada linha de código. Basta digitar no modo normal “g[valor da linha], exemplo g20 te levará a linha 20 do código. O mais legal é que ele interpreta porcentagem também. A exenplo, Você sabe que gostaria de editar uma linha de código próximo a metade do arquivo, logo, pode-se usar g50% e ele te levará a aproximadamente metade do arquivo.”

Exemplos:

  • g30 - te levará a metade do arquivo.
  • g40% - te levará a mais ou menos a metade do arquivo.

Um pouco sobre navegação, se você utilizar o “w” no modo normal você iram navegar a diante alternando entre as palavras. Se utilizar o “b” ele irá navegar no sentido contrário indo para trás. Para utilização em texto, que tal navegar entre frases? utilize o parenteses “(“ para voltar nas frases e “)” para ir adiante. Caso você esteja com o cursor em uma palavra, basta digitar o e, que ele irá para o final da palvra.

Exemplos:

  • (, ) - navega entre frases, respectivamente, voltando e indo adiante.
  • b, w - navega entre as palavas, respectivamente, voltando e indo adiante.
  • e - te leva para o final de cada palavra.
  • ^ - te leva para o primeiro caractere no início da linha.
  • 0 - te leva para para o início da linha inclui espaços em branco.

Agora que tal navegar entre tags? Se você utilizar “f[.,?,[,{,]”, qualquer um desses caracters ele tira levara ao fechamento da tag ou caractere
mais próximo.

  • f[ - leva ao fechamento de tag mais próximo
  • t[ - leva ao fechamento ou tag mais próximo com o curso um caractere antes.

Agora esses são sem dúvidas os melhores para quem programa. Que tal saltar entre classes ou entre métodos dentro do arquivo. Além disto, o “gi” é um dos melhores sem dúvidas, que tal você ir direto para sua última linha de inserção? basta digitar gi no modo normal. Além disto, imagina você editando uma arquivo Json, totalmente identado e você entre dentro de vários colchetes e chaves e precisar inserir um novo elemento dentro desse colchete ou chaves, basta ir ao início dos colchetes e digitar “%” ele te levará aofinal da identação. Muito prático não é mesmo?

Saltos:

  • [, ]] - permite você saltar linhas entre classes.
  • [m, ]m - permite você saltar entre métodos.

Conclusão!

  • • Você precisará deocrar alguns atalhos de início, porém com o tempo irá perceber que os atalhos acabam ficando intuitivos e bem mais práticos para tarefas de programação e escrita de texto.

  • • Todo o post foi criado usando VIM, ainda estou me adaptando, mas já achei bastante legal.

Obrigado por ler! Algum comentário ou feedback? Me mande uma mensagem na página de contato. Você pode me encontrar no LinkedIn.