Executando verificação de segurança...
6

5 Funcionalidades built-in do Vim que você provavelmente não conhece

Muito provavelmente o seu Vim deve estar abarrotado de plugins que facilitam todo tipo de operação, mas existem situações que você não tem acesso ao seu arquivo de configuração com os seus amados plugins, seja por você não estar no seu computador, por motivos de segurança, ou qualquer outra coisa. Nessas situações saber algumas das funcionalidades buit-in do vim pode te salvar algum tempo.

Colar comandos do Stdout

Através do comando :read! ou :r! podemos retornar a saída padrão do shell para a linha onde o cursor se encontra.

Exemplos:

  • Retornar a data e hora atual: :r!date +\%c
  • Retornar os usuários contidos na primeira coluna do arquivo passwd: :r!cut -d: -f1 /etc/passwd

Indentação automática

Você já deve saber que é possível indentar para esquerda ou direita utilizando os sinais de < (menor que) e > (maior que) respectivamente. Mas isso te limita a ter que escolher apenas um lado e a ter que saber exatamente quantos tabs/espaços usar. Para indentar automaticamente basta apertar o sinal de igual (=) do seu teclado no trecho em que desejar indentar.

Exemplos:

  • identar linha: ==
  • indentar parágrafo: =ap
  • indentar todo o documento gg=G

Trocar entre maiúsculo e minúsculo

No modo normal, pressione o sinal de til (~). No modo de seleção, selecione o trecho desejado e use o U para maiúsculas e o u para minúsculas. Para usar com motions basta acrescentar a letra g antes: gU<motion> ou gu<motion>.

Exemplos:

  • Mudar palavra em que o cursor está em cima para maiúsucla: gUiw
  • Mudar de onde o cursor está até o começo da linha para minúsculo: gu0
  • Mudar as duas palavras seguintes para maiúsculo: 2gUaw
  • Inverter toda a linha: g~~

Incrementar ou decrementar em ordem

É comumente sabido que é possível incrementar e decrementar com <c-a> e <c-x> respectivamente, mas usando g<c-a> e g<c-x> podemos fazer isso em ordem.

Exemplo:

Selecionado<c-a>g<c-a>2g<c-a>
a 0a 1a 1a 2
b 0b 1b 2b 4
cccc
d 0d 1d 4d 6

Aplicar Ex commands em linhas correspondentes a uma Regex

Ex commands em linhas gerais é o que usamos no modo de comando do Vim, como o :s para substituição, por exemplo.

Para usar o ex command junto com a regex, digite :g/regex/cmd e veja a mágica acontecer!

Exemplos:

  • Deleta todas as linhas que contenham números: :g/\d/d
  • Elimina o primeiro espaço de todas as linhas correspondentes: :g/[a-zA-Z]\+/norm f dw

Bônus

  • Selecionar último bloco de seleção: gv
  • Pular para o próximo ou anterior sem sair da linha da busca: ctrl-g e ctrl-t
  • Ver histórico de comando ou busca:
    • aperte ctrl-f no modo de comando ou na busca, navegue com j e k e selecione com enter
    • Para enviar a linha que o cursor está para edição aperte ctrl-c
    • também é possível abrir esse menu pelo modo normal com q: para lista de comandos e q/ para a lista de buscas
  • Abrir arquivos direto do normal mode: Coloque o cursor sob o caminho do arquivo e pressione gf.

Agora é só juntar tudo, usar com macros e mappings e o céu será o limite!

Carregando publicação patrocinada...