Alterne entre os modos do Vim, use comandos básicos de edição e execute tarefas comuns como pesquisar, substituir e comentar código.
Instalação
O Vim vem pré-instalado na maioria dos sistemas Linux. Execute vim --version para verificar a versão instalada. Este tópico usa o Vim 8.0 como exemplo. Comandos e recursos podem variar em outras versões.
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 10 2022 11:26:47)
Included patches: 1-1763
Modified by OpenAnolis Community
Compiled by OpenAnolis Community
Enormous version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
......
Alternância entre modos
Execute vim filename para abrir um arquivo no modo Normal. Se o arquivo não existir, o Vim o criará. A tabela a seguir descreve cada modo e como alternar entre eles.
|
Modo |
Função |
Alternância de modo |
|
Modo Normal (Normal Mode) |
Copia, cola e exclui caracteres ou linhas. |
|
|
Modo de Inserção (Insert Mode) |
Insere caracteres na posição do cursor. |
No modo Normal, pressione Nota
Quando o modo de Inserção está ativo, |
|
Modo de Substituição (Replace Mode) |
Sobrescreve caracteres na posição do cursor. |
No modo Normal, pressione Nota
Quando o modo de Substituição está ativo, |
|
Modo Visual (Visual Mode) |
Seleciona texto. Comandos como copiar, substituir e excluir aplicam-se apenas ao texto selecionado. |
No modo Normal, pressione Nota
Quando o modo Visual está ativo, |
|
Modo de Comando (Command Mode) |
Localiza e substitui strings, exibe números de linha, salva alterações e sai. |
No modo Normal, pressione |
Comandos básicos
Abertura de arquivos
vim filename: Abre um arquivo no modo Normal. Se o arquivo não existir, o Vim o criará.-
vim filename1 filename2: Abre vários arquivos.O Vim abre
filename1primeiro. Salve com:we execute:bnpara alternar parafilename2. Salvefilename2com:w.:bp: Alterna para o arquivo anterior.:ls: Lista todos os arquivos abertos.
:open filename3: Abre um novo arquivo no modo de Comando. Salve o arquivo atual com:wantes.
Movimentação do cursor
-
No modo Normal
Seta para cima /
k: Move para cima.Seta para baixo /
j: Move para baixo.Seta para a esquerda /
h: Move para a esquerda.Seta para a direita /
l: Move para a direita.
-
No modo de Inserção
Use apenas as teclas de seta.
Inserção de conteúdo
No modo Normal, pressione i,I,a,A,o,O para entrar no modo de Inserção:
i: Insere antes do cursor.I: Insere no início da linha.a: Insere após o cursor.A: Insere no final da linha.o: Abre uma nova linha abaixo.O: Abre uma nova linha acima.
Cópia e colagem
No modo Normal:
yy: Copia a linha atual. Cole comp.nyy: Copianlinhas a partir da linha atual. Por exemplo,2yycopia duas linhas.p: Cola abaixo do cursor.P: Cola acima do cursor.
Exclusão
-
No modo Normal
x: Exclui o caractere na posição do cursor.dd: Exclui a linha atual. Cole comp.dk: Exclui a linha atual e a linha acima.dj: Exclui a linha atual e a linha abaixo.dG: Exclui da linha atual até o final do arquivo.nx: Excluincaracteres a partir do cursor.ndd: Excluinlinhas a partir da linha atual. Cole comp.
-
No modo de Inserção
Use
Deletepara excluir caracteres.
Pesquisa
No modo Normal
-
/text: Pesquisa portext. Por padrão, a pesquisa diferencia maiúsculas de minúsculas. Pressione Enter para destacar as correspondências.Para pesquisar sem distinção entre maiúsculas e minúsculas, execute
:set ignorecase. Para restaurar a distinção, execute:set noignorecase.
n: Próxima correspondência.N: Correspondência anterior.
Substituição
-
No modo Normal
r: Substitui o caractere na posição do cursor.R: Entra no modo de Substituição para substituição contínua. PressioneEscpara sair.cc: Exclui a linha atual e entra no modo de Inserção.:%s/oldtext/newtext/g: Substitui todas as ocorrências deoldtextpornewtext. Sem/g, apenas a primeira correspondência por linha é substituída.
-
No modo de Inserção
Exclua o conteúdo antigo e digite o novo.
Desfazer e refazer
No modo Normal
u: Desfaz a última alteração.U: Desfaz todas as alterações na linha atual.Ctrl+r: Refaz a última alteração desfeita.
Recuo e alinhamento
-
No modo Normal
>>: Recua a linha atual para a direita. Recuo padrão: 8 espaços (uma tabulação).<<: Recua a linha atual para a esquerda.
-
No modo de Comando
:ce: Centraliza a linha.:le: Alinha a linha à esquerda.:ri: Alinha a linha à direita.
Comentário de código
Faça backup do arquivo antes de substituições em larga escala ou use o comando de desfazer (
u) para reverter erros. Por exemplo, executesudo cp /etc/text.txt /etc/text.txt.bakpara fazer backup de um arquivo.Entenda a sintaxe de expressões regulares do Vim para evitar exclusões acidentais de conteúdo. Nas expressões regulares do Vim,
/deve ser escapado como\/. Pratique com ferramentas como Regex101.Ajuste o símbolo de comentário conforme a linguagem de programação.
-
No modo Visual
-
Comentar várias linhas consecutivas de código
Selecione as linhas a comentar movendo o cursor para cima ou para baixo.
Pressione
:para entrar no modo de Comando. O Vim preenche automaticamente:'<,'>, que tem como alvo o intervalo selecionado.Digite o comando de substituição. Por exemplo, para adicionar
#no início de cada linha, digites/^/#/e pressioneEnter.Comentar todo o código:
:%s/^/#/gadiciona#no início de cada linha.-
No modo de Inserção
Digite manualmente os símbolos de comentário para comentar o código.
Salvar:
:wSair:
:qSalvar e sair:
:wq,:xouZZForçar saída sem salvar:
:q!Forçar salvamento e saída:
:wq!vim -x filename: Abre um arquivo com criptografia. Defina uma senha e salve o arquivo para aplicar a criptografia. Aberturas subsequentes exigirão a senha.-
Cancelar criptografia:
Execute
:set key=para limpar a chave de criptografia.Salve e saia com
:wq.Reabra o arquivo com
vim filename. Nenhuma solicitação de senha aparecerá.
!pwd: Mostra o diretório de trabalho atual.!ls: Lista os arquivos no diretório atual.vim -o filename1 filename2: Abre dois arquivos em janelas separadas. Saia de cada janela individualmente.:n: Próxima janela.:N: Janela anterior.Execute vim --help no terminal para visualizar a sintaxe dos comandos do Vim.
-
No modo Normal
:help: Abre o documento de ajuda do Vim (somente leitura). Saia com:q.:help i: Mostra ajuda parai.:help yy: Mostra ajuda parayy.:set nu: Exibe os números das linhas.
Execute
vim example.confpara abrir o arquivo.Posicione o cursor no primeiro caractere e pressione
ipara entrar no modo de Inserção.Digite
Locatione pressione Enter para iniciar uma nova linha.Pressione
Escpara retornar ao modo Normal.-
Digite
:wqpara salvar e sair.
Execute
vim example.confpara abrir o arquivo.Execute
:10para mover o cursor para a linha 10.Pressione
ipara entrar no modo de Inserção.Digite
#.Pressione
Escpara retornar ao modo Normal.-
Digite
:wqpara salvar e sair.
Execute
vim example.confpara abrir o arquivo.Pesquise a linha de destino:
/Include conf.modules.d/*.confPressione
ipara entrar no modo de Inserção.Digite
LoadModule rewrite_module modules/mod_rewrite.so.Pressione
Escpara retornar ao modo Normal.-
Digite
:wqpara salvar e sair.
Execute
vim example.confpara abrir o arquivo.Pesquise a linha de destino:
/#Listen 12.34.XX:XX:80. O cursor ficará sobre#.Pressione
xpara excluir#.Mova o cursor para a linha Listen 80 e pressione
ddpara excluí-la.-
Digite
:wqpara salvar e sair.
-
Considere que
#esteja no início de uma linha, possivelmente precedido por espaços ou recuo:# This is a comment # Another comment # Yet another comment -
Remova os comentários:
:%s/^\s*#\s\?//Detalhamento do padrão:
^: Início da linha.\s*: Qualquer espaço em branco (lida com recuo).#: Símbolo de comentário.\s\?: Um espaço opcional após#.//: Substitui a correspondência por nada (exclui).
Este comando processa todo o arquivo. Resultado:
This is a comment Another comment Yet another comment -
"No write since last change" ao sair:
Causa: O arquivo foi modificado, mas não salvo.
Solução: Salve e saia com
:wqou descarte as alterações com:q!.
-
Não é possível inserir texto:
Causa: Você pode estar em um modo diferente do modo de Inserção, como o modo Visual.
Solução: Pressione
Escpara retornar ao modo Normal e entre no modo de Inserção.
-
Não é possível salvar o arquivo:
Causa: O usuário atual não tem permissões de gravação. Arquivos de configuração do sistema, como
/etc/hostse/etc/nginx/nginx.conf, exigem permissões de superusuário.Solução 1: Abra o arquivo com
sudo vim example.conf.Solução 2: Salve com permissões elevadas usando
:w !sudo tee %. Como alternativa, altere as permissões ou a propriedade do arquivo comsudo chownousudo chmod.
-
Existe um arquivo ".swp":
Causa: O arquivo está aberto em outra sessão do Vim.
Solução: Confirme se nenhum outro terminal está editando o arquivo. Caso contrário, localize e exclua o arquivo
.swpcomll -ae reabra o arquivo. Como alternativa, execute:recoverpara restaurar a partir do arquivo swap.
Salvamento e saída
Criptografia de documentos
Execução de comandos shell
Edição em múltiplas janelas
Ajuda
Exemplos de uso
Modificar um arquivo de configuração
Insira
Locationna primeira linha de example.conf:Inserir conteúdo em uma linha específica
Insira
#no início da linha 10 em example.conf:Localizar e inserir conteúdo
Em example.conf, insira
LoadModule rewrite_module modules/mod_rewrite.soapósInclude conf.modules.d/*.conf:Excluir conteúdo
Em example.conf, exclua
#do início da linha#Listen 12.34.XX:XX:80e exclua a linha Listen 80:Editar Docker.yaml
Crie e edite
docker-compose.yaml:
Remover comentários de múltiplas linhas
Atualizar o Vim
Se sua versão do Vim não atender às necessidades, atualize-a com os seguintes comandos.
Alibaba Cloud Linux 3 and 2
sudo yum update vimCentOS 7 and 8
sudo yum update vimFedora
sudo yum update vimUbuntu and Debian
sudo apt upgrade vimopenSUSE
sudo zypper update vimSolução de problemas
-