Editor vi avançado

Neste texto, vamos abordar alguns comandos, recursos e técnicas para usar o editor de textos vi, de maneira mais avançada.
No texto Editor vi básico, mostramos uma série de comandos para iniciantes — incluindo 2 papéis de parede com a relação de comandos básicos do vi, para ajudar a memorizar.
vi text editor
Este post é voltado para usuários que desejam poupar tempo e escrever (código de programação ou outros textos) com mais eficiência — fazendo uso de recursos avançados, que o livram do trabalho repetitivo.

O vi é um editor de textos tradicional no UNIX/Linux. Foi muito popular, mas os termos da sua licença não eram 100% livres (até 2002).
Isto abriu caminho para vários editores compatíveis — como o nvi e o elvis. O Vim, é também um deles.
Em muitas distribuições Linux, ao digitar ‘vi’, o Vim é o que será executado.

Vamos ao que interessa! 😉

Como fazer busca de strings dentro do editor vi

Segue a lista de referência rápida, para encontrar strings dentro de um arquivo aberto no vi.
Funciona igual às páginas do manual do sistema (comando man) ou ao player de música cmus.

  • /   — faz a busca pela próxima ocorrência da string, no texto
  • ?   — faz a busca (pra trás) pela ocorrência anterior da string escolhida
  • /^   — faz a busca pela ocorrência da string em inícios de linha
  • /.   — faz a busca pela ocorrência de um único caractere
  • /*   — faz a busca por qualquer caractere presente após a string
  • /$   — faz a busca pela ocorrência da string em fins de linha
  • n   — move o cursor para a próxima ocorrência durante a busca
  • N   — move o cursor para a ocorrência anterior durante a busca

Como fazer busca e substituição de texto no vi

Para completar a lista, acima, veja como encontrar strings no texto e susbstituí-las:

  • :s/string-atual/string-nova   — encontra a string atual e substitui pela nova
  • :s/string-atual/string-nova/g   — encontra a string atual e substitui pela nova, em uma linha
  • :%s/string-atual/string-nova/g   — encontra a string atual e substitui pela nova, em um arquivo

Faça ajustes no vi, com o comando set

  • :set ic   — ignore case, ou seja, passa ignorar a caixa (se maiusculas ou minúsculas) dos caracteres, durante as buscas
  • :set number ou :set nu   — liga a exibição da numeração das linhas na tela
  • :set nonu   — desliga a exibição da numeração das linhas na tela
  • :set ai   — liga a autoindentação
  • :set noai   — desliga a autoindentação
  • :set list   — liga a exibição de caracteres invisíveis
  • :set nolist   — desliga a exibição de caracteres invisíveis
  • :set sw=n   — ajusta a largura do shift para o valor de n
  • :set wm=n   — ajusta a margem de palavra para o valor definido em n
  • :set ws   — ao encontrar o final do arquivo, recomeça a busca do começo
  • :set bf   — para descartar caracteres de controle do input
  • :set ro   — altera o modo de acesso do arquivo para “apenas leitura” (read only
  • :set showmatch   — liga exibição de pares de parênteses à medida em que forem digitados
  • :set noshowmatch   — desliga exibição de pares de parênteses à medida em que forem digitados
  • :set showmode   — exibe o modo do editor, na linha de status
  • :set noshowmode   — oculta o modo do editor.
  • :set term   — mostra o tipo de terminal
  • :set all   — mostra valores de todos os possíveis tamanhos

Mais comandos

  • J   — junta duas linhas
  • ~   — altera a caixa de um caractere
  • U   — restaura o estado de uma linha, desfazendo alterações
  • u   — defaz a última alteração
  • Ctrl + G   — exibe o nome do arquivo e status
  • :f   — exibe a posição atual do arquivo em %, nome do arquivo e o número total de arquivos
  • :f nome-do-arquivo   — renomeia o arquivo atual para nome-do-arquivo
  • :f nome-do-arquivo   — grava o conteúdo atual para nome-do-arquivo
  • :e nome-do-arquivo   — abre
  • :new nome-do-arquivo   — abre novo arquivo, com o nome dado
  • :n   — se tiver múltiplos arquivos abertos, este comando move para o próximo arquivo da fila
  • :p ou :N   — se tiver múltiplos arquivos abertos, um destes comandos para mover o foco para o anterior da fila
  • :r nome-do-arquivo   — lê e posiciona o conteúdo de nome-do-arquivo após a linha atual do cursor
  • :nr nome-do-arquivo   — lê e posiciona o conteúdo de nome-do-arquivo após a linha n
  • :cd nome-do-diretorio   — altera o diretório atual
  • G   — move o cursor para a última linha
  • nG ou :n   — move o cursor para a linha n

Referência

http://www.ctrlageeks.com/advanced-vi-editor/.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *