English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux vi/vim

All Unix Like systems will have the vi document editor built-in, while other document editors may not exist.

But at present, we use the vim editor more.

Vim has the ability to edit programs, and can actively distinguish the correctness of syntax by font color, which is convenient for program design.

Related articles:The most complete Vim shortcut key map - from beginner to advanced

What is vim?

Vim is a text editor developed from vi. It has a particularly rich set of convenient programming features such as code completion, compilation, and error jump, and is widely used by programmers.

In simple terms, vi is an old-fashioned word processor, but its functions are very complete. However, there are still places for improvement. Vim can be said to be a very useful tool for program developers.

Link to the official website of vim (http://www.vim.org) He also says that vim is a program development tool rather than a word processing software.

Vim keyboard map:

vi/Vim usage

basically vi/Vim is divided into three modes, namelyCommand mode (Command mode),Insert mode (Insert mode)andBottom line command mode (Last line mode). The functions of these three modes are as follows:

Command mode:

The user just started vi/vim, and enter command mode.

In this state, keystrokes will be recognized by Vim as commands, not input characters. For example, if we press i now, we will not input a character; i is treated as a command.

The following are some commonly used commands:

  • i Switch to insert mode to input characters.

  • x Delete the character at the current cursor position.

  • : Switch to bottom line command mode to input commands on the bottom line.

If you want to edit text: start Vim, enter command mode, press i, switch to insert mode.

Command mode only has some of the most basic commands, so you still need to rely on the bottom line command mode to input more commands.

Insert mode

Press i in command mode to enter insert mode.

No modo de entrada, você pode usar as seguintes teclas:

  • teclas de caractere e combinação de Shiftcaracteres de entrada

  • ENTERtecla de enter, nova linha

  • BACK SPACEtecla de backspace, excluir o caractere antes do cursor

  • DELtecla de exclusão, excluir o caractere após o cursor

  • teclas de direçãomover o cursor no texto

  • HOME/ENDmover o cursor para o início da linha/fim da linha

  • Page Up/Page Downpágina para cima/página para baixo

  • Insertalternar o cursor para entrada/modo de substituição, o cursor se tornará uma linha vertical/sublinhado

  • ESCsair do modo de entrada, alternar para o modo de comando

Modo de comando em linha

Pressione : (ponto e vírgula) para entrar no modo de comando em linha.

O modo de comando em linha pode inserir um ou mais caracteres de comando, há muitos comandos disponíveis.

No modo de comando em linha, os comandos básicos são (os dois pontos foram omitidos):

  • q sair do programa

  • w salvar arquivo

Pressione a tecla ESC para sair do modo de comando em linha.

Em termos simples, podemos imaginar os três modos como os ícones a seguir:

vi/Exemplo de uso do vim

usando vi/vim entra na modalidade normal

Se você quiser usar o vi para criar um arquivo chamado w3ao editar o arquivo codebox.txt, você pode fazer assim:

$ vim w3codebox.txt

digite diretamente Nome do arquivo do vi pode entrar no modo normal do vi. Preste atenção, lembre-se de que o vi deve sempre ser seguido pelo nome do arquivo, independentemente de ele existir ou não!

Pressione i para entrar no modo de entrada (também conhecido como modo de edição) e começar a editar o texto

No modo normal, basta pressionar i, o, a e outros caracteres para entrar no modo de entrada!

No modo de edição, você pode notar que no canto inferior esquerdo da barra de estado aparecerá –INSERT- indicativo, é uma sugestão para inserir caracteres aleatórios.

Neste momento, além dos Esc Além deste botão, todos os outros podem ser considerados botões de entrada normais, então você pode fazer qualquer edição.

Pressione o botão ESC para retornar à modalidade normal

Bem, suponhamos que já tenha editado conforme o estilo acima, então como eu saio? Sim! Exatamente! É pressionar Esc Este botão! Você logo perceberá que o – INSERT – no canto inferior esquerdo da tela desapareceu!

Pressione na modalidade normal :wq Sair do vi após salvar

OK, vamos salvar, o comando para salvar e sair é simples, digite :wq pode salvar e sair!

OK! Agora, criamos com sucesso um w3do arquivo codebox.txt.

vi/Explicação dos atalhos do vim

Além dos exemplos básicos i, Esc, :wq, o vim possui muitos outros atalhos de teclado disponíveis.

Primeira parte: movimentação do cursor, cópia, cola, busca e substituição disponíveis no modo geral

Métodos de movimentação do cursor
h ou seta para esquerda (←)O cursor move-se um caractere para a esquerda
j ou seta para baixo (↓)O cursor move-se um caractere para baixo
k ou seta para cima (↑)O cursor move-se um caractere para cima
l ou seta para a direita (→)O cursor move-se um caractere para a direita
Se você colocar a mão direita no teclado, você notará que hjkl estão juntos, então você pode usar esses quatro botões para mover o cursor. Se você quiser se mover várias vezes, por exemplo, para baixo 30 linhas, você pode usar "30j" ou "3A combinação de teclas 0↓" Isso é, adicione o número de vezes desejado e, em seguida, pressione a ação!
[Ctrl] + [f]A tela se move 'para baixo' uma página, equivalente à tecla [Page Down] (Usado frequentemente)
[Ctrl] + [b]A tela se move 'para cima' uma página, equivalente à tecla [Page Up] (Usado frequentemente)
[Ctrl] + [d]A tela se move 'para baixo' metade da página
[Ctrl] + [u]A tela se move 'para cima' metade da página
+O cursor move-se para a linha abaixo do caractere não em branco
-O cursor move-se para a linha acima do caractere não em branco
n<espaço>Este n representa 'número', por exemplo 20 . Pressione o número e, em seguida, a tecla de espaço, o cursor se move para a direita n caractere. Por exemplo 20<espaço> então o cursor se move para trás 2Distância de 0 caracteres.
0 ou tecla de função [Home]Este número '0': mover para o início da linha (Usado frequentemente)
$ ou tecla de função [End]Mover para o final da linha (usado com frequência)
HO cursor move-se para o primeiro caractere da linha mais alta na tela
MO cursor move-se para o primeiro caractere da linha central na tela
LO cursor move-se para o primeiro caractere da linha mais baixa na tela
GMover para a última linha do arquivo (usado com frequência)
nGn é um número. Mover para a linha n do arquivo. Por exemplo 20G moverá para a linha 20 linha (pode ser combinado com :set nu)
ggMover para a primeira linha deste arquivo, equivalente a 1G uau! (Usado frequentemente)
n<Enter>n é um número. O cursor move-se para baixo n linhas (usado com frequência)
Procurar e substituir
/palavraProcurar uma string nomeada word abaixo do cursor. Por exemplo, para procurar vbird dentro do arquivo Esta string, digite /vbird o suficiente! (Usado frequentemente)
?wordProcurar uma string nomeada word acima do cursor.
nEste n é um botão inglês. Representa a repetição da ação de busca anterior. Por exemplo, Se recentemente executamos /O vbird navega para baixo para procurar a string vbird, após pressionar n, continua para baixo para procurar o próximo nome vbird string. Se for executar ?vbird, então pressionar n continuará a procurar a string chamada vbird para cima!
NEste N é o botão inglês. Justamente o contrário do n, para realizar a ação de busca anterior 'para trás'. Por exemplo /vbird, pressione N para indicar 'para cima' procurar vbird.
Usar /word combinado com n e N é muito útil! Pode ajudá-lo a encontrar algumas palavras-chave de busca repetidamente!
:n1,n2s/palavra1/palavra2/gn1 e n2 é um número. No n1 e n2 linhas entre procurar word1 essa string, e substitua a string por palavra2 !Por exemplo, na 100 até 200 linhas entre procurar vbird e substituir por VBIRD então:
『:100,200s/vbird/VBIRD/g』。(comum)
:1$s/palavra1/palavra2/g ou :%s/palavra1/palavra2/gProcurar word de primeira até última linha1 cadeia de caracteres, e substitua a cadeia de caracteres por palavra2 !(comum)
:1$s/palavra1/palavra2/gc ou :%s/palavra1/palavra2/gcProcurar word de primeira até última linha1 cadeia de caracteres, e substitua a cadeia de caracteres por palavra2 !e exiba o caractere de aviso ao usuário para confirmar antes da substituição (confirmar) Precisa substituir! (comum)
excluir, copiar e colar
x, XDentro de uma linha de texto, x para excluir um caractere para trás (equivalente ao [del] botão) X para excluir um caractere para frente (equivalente ao [backspace], ou seja, o botão de retrocesso) (Usado frequentemente)
nxn é um número, exclua continuamente n caracteres. Por exemplo, quero excluir continuamente 10 caractere, 『10x』。
ddExclua a linha onde o cursor está (comum)
nddn é um número. Exclua as n linhas abaixo do cursor, por exemplo 20dd é excluir 20 linhas (Usado frequentemente)
d1GExclua o caractere ao lado do cursor até a primeira linha
dGExclua o caractere ao lado do cursor até a última linha
d$Exclua o caractere ao lado do cursor até o último caractere da linha
d0Esse é o número 0, exclua o caractere ao lado do cursor até o primeiro caractere da linha
yyCopiar a linha onde o cursor está (comum)
nyyn é um número. Copiar as n linhas abaixo do cursor, por exemplo 20yy é copiar 20 linha (comum)
y1GCopiar a linha onde o cursor está até a primeira linha
yGCopiar a linha onde o cursor está até a última linha
y0Copiar o caractere ao lado do cursor até o início da linha
y$Copiar o caractere ao lado do cursor até o final da linha
p, Pp para colar os dados copiados na linha abaixo do cursor, P para colar na linha acima do cursor! Por exemplo, o cursor está na linha 20 linhas, e já foram copiados 10 Se os dados estiverem na linha, pressione p depois, Isso}} 10 Os dados da linha serão colados no local original 2A linha 0 após, ou seja, a partir da 21 começa a colar. Mas o que acontece se você pressionar P? Então, a linha original 2A linha 0 será empurrada para se tornar 30 linha. (Usado frequentemente)
JCombinar os dados da linha atual com os dados da próxima linha em uma única linha
cExcluir múltiplos dados repetidamente, por exemplo, excluir para baixo 10 linha, [ 10cj ]
uRestaurar a ação anterior. (usado com frequência)
[Ctrl]+rRefaça a ação anterior. (usado com frequência)
Este u com [Ctrl]+r é um comando muito usado! Um é restaurar, e o outro é repetir novamente! Usando esses botões de função, sua edição, hehe! Muito divertida!
.Não duvide! Isso é o ponto decimal! Significa repetir a ação anterior. Se você quiser repetir ações como exclusão repetida, colar repetido etc., pressione o ponto decimal '.'! (Usado frequentemente)

Segunda parte: descrição dos botões disponíveis para alternar do modo geral para o modo de edição

Entrar no modo de edição ou substituição
i, IEntrar no modo de inserção (Insert mode):
i é 'inserir a partir da posição atual do cursor', I é 'começar a inserir no primeiro caractere não em branco da linha atual'. (Usado frequentemente)
a, AEntrar no modo de inserção (Insert mode):
a é 'começar a inserir a partir do próximo caractere do cursor atual', A é 'começar a inserir a partir do último caractere da linha atual'. (usado com frequência)
o, OEntrar no modo de inserção (Insert mode):
Isso é o tamanho do caractere 'o' em minúsculo. O para inserir uma nova linha abaixo da posição do cursor atual; O para inserir uma nova linha acima da posição do cursor atual! (usado com frequência)
r, REntrar no modo de substituição (Replace mode):
r substituirá apenas o caractere na posição do cursor uma vez; R continuará a substituir o texto na posição do cursor até que você pressione ESC para parar; (usado com frequência)
Nosso teclado acima, na esquerda inferior do vi, aparecerá『--INSERT--』ou『--REPLACE--o caractere '』'. Pela nomeação, você já sabe qual ação fazer? Especialmente importante notar que também mencionamos acima, quando você quiser inserir caracteres no arquivo: Você deve ver INSERT ou REPLACE na esquerda inferior para poder inserir!
[Esc]Sair do modo de edição e voltar ao modo geral (usado com frequência)

Terceira parte: descrição dos botões disponíveis para alternar do modo geral para o modo de linha de comando

Instruções de armazenamento e saída da linha de comando
:wGravar os dados editados no arquivo no disco rígido (usado com frequência)
:w!Se o atributo do arquivo for 'apenas leitura', force a gravação do arquivo. No entanto, se realmente pode gravar, Ainda tem a ver com as permissões do arquivo!
:qSair do vi (usado com frequência)
:q!Se você já editou o arquivo e não deseja salvá-lo, use ! para sair forçadamente sem salvar o arquivo.
Atenção, aquele ponto de exclamação (!) no vi, geralmente tem o significado de 'forçar'~
:wqSair após o armazenamento, se for :wq! então é sair forçadamente após o armazenamento (Usado frequentemente)
ZZÉ a letra Z maiúscula! Se foi alterado, salve o arquivo atual e saia! O efeito é equivalente a (salvar e sair)
ZQNão salvar, sair forçadamente. O efeito é equivalente a :q!.
:w [filename]O conteúdo editado é salvo em outro arquivo (semelhante ao salvar como)
:r [filename]No dados de edição, ler os dados de outro arquivo. Ou seja, o arquivo 『filename』 Este conteúdo do arquivo é adicionado ao final da linha do cursor
:n1,n2 w [filename]Adicionar n1 até n2 o conteúdo é salvo no arquivo filename.
:! commandSair temporariamente do vi para o modo de linha de comando para exibir o resultado do comando command! Por exemplo
『:! ls /home』pode ser vista no vi /abaixo do home, as informações de arquivo exibidas pelo ls!
Alterações do Ambiente do vim
:set nuMostrar números de linha, após a configuração, o número da linha será exibido no prefixo de cada linha
:set nonuao contrário de set nu, para cancelar os números de linha!

Atenção especial, no vi/no vim, os números são muito significativos! Os números geralmente representam quantas vezes fazer repetidamente! Também pode representar ir para o qual something something.

Por exemplo, para deletar 50 linha, então é usado 『50dd』, certo! O número é colocado antes da ação, como eu vou para baixo 20 linha? Isso é『20j』ou『20↓』basta.