Linux vi/vim


Tous les systèmes Unix Like auront un éditeur de documents vi intégré, mais d'autres éditeurs de documents peuvent ne pas exister.

Mais actuellement, nous utilisons davantage l'éditeur vim.

vim a la capacité d'éditer des programmes. Il peut identifier activement l'exactitude de la grammaire par la couleur de la police, ce qui facilite la conception des programmes.

Articles connexes : Le bitmap de touches de raccourci Vim le plus complet de l'histoire - entrée aux niveaux avancés


Qu'est-ce que vim ?

Vim est un éditeur de texte développé à partir de vi. Il est particulièrement riche en fonctions facilitant la programmation, telles que la complétion de code, la compilation et le saut d'erreurs, et est largement utilisé par les programmeurs.

Pour faire simple, vi est un traitement de texte à l'ancienne, mais ses fonctions sont déjà très complètes, mais il y a encore place à l'amélioration. vim peut être considéré comme un outil très utile pour les développeurs de programmes. Même le site officiel de vim (http://www.vim.org) indique lui-même que vim est un outil de développement de programmes plutôt qu'un logiciel de traitement de texte.

Schéma du clavier vim :

vi-vim-cheat-sheet-sch.gif


Utilisation de vi/vim

Fondamentalement, vi/vim est divisé en trois modes, qui sont respectivement le mode général, le mode d'édition et le mode de commande en ligne de commande. Les fonctions de ces trois modes sont :

  • Mode général :
    Ouvrir un fichier avec vi fera directement entrer le mode normal (c'est le mode par défaut). Dans ce mode, Vous pouvez utiliser les touches « haut, bas, gauche et droite » pour déplacer le curseur, et vous pouvez utiliser « supprimer des caractères » ou « supprimer des lignes entières » pour traiter le contenu du fichier. Vous pouvez également utiliser le « copier-coller » pour traiter les données de votre fichier.

  • Mode édition :
    En mode normal, vous pouvez supprimer, copier, coller, etc., mais vous ne pouvez pas modifier le contenu du fichier ! Attendez d'appuyer sur 『i, I, o, O, a, A, r, R, etc. entreront en mode d'édition après n'importe quelle lettre. Attention! habituellement dans Sous Linux, lorsque ces touches sont enfoncées, « INSERT » apparaîtra dans le coin inférieur gauche de l'écran. ou REPLACE", ce n'est qu'alors que vous pourrez modifier. Et si vous souhaitez revenir au mode normal, Vous devez appuyer sur le bouton "Esc" pour quitter le mode édition.

  • Mode de commande en ligne de commande :
    En mode normal, saisissez " : / ? ‖ N'importe lequel des trois boutons peut déplacer le curseur vers la ligne du bas. Dans ce modèle, Il peut vous fournir les actions de « recherche de données », notamment la lecture, la sauvegarde, le remplacement d'un grand nombre de caractères et la sortie. Les actions de vi, affichage des numéros de ligne, etc. sont réalisées dans ce mode !

Pour faire simple, nous pouvons considérer ces trois modes comme les icônes ci-dessous :

1040.png

Exemples d'utilisation de vi/vim

Utiliser vi/vim pour passer en mode normal

Si vous souhaitez utiliser vi pour créer un fichier nommé test.txt, vous pouvez faire ceci :

[root@www ~]# vi test.txt

Entrez directement le nom du fichier vi pour entrer dans le mode normal de vi. Veuillez noter que vous devez ajouter le nom du fichier après vi, que le fichier existe ou non !

1041.png

Appuyez sur i pour entrer en mode édition et commencer à éditer le texte

En mode normal, appuyez simplement sur i, o, a et d'autres caractères pour entrer en mode édition !

En mode édition, vous pouvez trouver le mot –INSÉRER- apparaissant dans la barre d'état dans le coin inférieur gauche, qui est une invite vous permettant de saisir n'importe quel caractère.

À l'heure actuelle, à l'exception de la touche [Esc], toutes les autres touches du clavier peuvent être considérées comme des boutons de saisie généraux, vous pouvez donc effectuer n'importe quelle modification.

1048.jpg

Appuyez sur le bouton [ESC] pour revenir au mode normal

D'accord, en supposant que j'ai fini de l'éditer selon le style ci-dessus, comment dois-je quitter ? Oui! C'est exact! Appuyez simplement sur le bouton [Esc] pour lui ! Immédiatement, vous constaterez qu'il manque - INSÉRER - dans le coin inférieur gauche de l'écran !

En mode normal, appuyez sur :wq pour enregistrer et quitter vi

OK, nous allons enregistrer La commande pour enregistrer et quitter est très simple Entrez ":wq" pour enregistrer et. partir!

1049.png

OK ! De cette façon, nous avons réussi à créer un fichier test.txt. N'est-ce pas très simple.


Description du bouton vi/vim

En plus de i, [Esc], :wq dans l'exemple simple ci-dessus, vim a en fait de nombreux boutons qui peuvent être utilisés.

Partie 1 : Description des boutons disponibles en mode normal, mouvement du curseur, copier-coller, rechercher et remplacer, etc.

Méthodes pour déplacer le curseur
h ou flèche gauche (←)Déplacer le curseur d'un caractère vers la gauche
j ou Flèche vers le bas (↓)Déplacez le curseur d'un caractère vers le bas
k ou Flèche vers le haut (↑)Déplacez le curseur d'un caractère vers le haut
l ou touche fléchée droite (→)Déplacez le curseur d'un caractère vers la droite
Si vous placez votre main droite sur le clavier, vous remarquerez que hjkl est disposé ensemble de manière à ce que vous puissiez utiliser les quatre boutons pour déplacer le curseur. Si vous souhaitez vous déplacer plusieurs fois, par exemple descendre de 30 lignes, vous pouvez utiliser la combinaison de touches « 30j » ou « 30↓ ». Autrement dit, après avoir ajouté le nombre de fois (nombre) que vous souhaitez effectuer, appuyez sur l'action !
[Ctrl] + [f]Déplacer l'écran "vers le bas" d'une page, équivalent au bouton [Page Down] (Couramment utilisé)
[Ctrl] + [b]Déplacer l'écran "vers le haut" d'une page, équivalent au bouton [Page précédente] (Couramment utilisé)
[Ctrl] + [d]Déplacer l'écran "vers le bas" d'une demi-page
[Ctrl ] + [u]Déplacer l'écran "vers le haut" d'une demi-page
+Déplacer le curseur vers la colonne suivante de caractères non-espaces
-Déplacez le curseur vers la colonne précédente de caractères non-espaces
n<espace> ;Ce n signifie 『 Nombre", comme 20. Après avoir appuyé sur le chiffre puis appuyé sur la barre d'espace, le curseur se déplacera n vers la droite sur cette ligne personnages. Par exemple, 20<espace> reculera le curseur de 20 caractères.
0 ou touche de fonction [Accueil]Voici le chiffre 『0』 : passer au premier caractère de cette ligne (Couramment utilisé)
$ ou touche de fonction [Fin] pour passer au dernier caractère de cette ligne (Couramment utilisé)
HLe curseur se déplace vers le premier caractère de la ligne supérieure de cet écran
MLe curseur se déplace vers le centre de cet écran Le premier caractère de cette ligne
L Déplacez le curseur sur le premier caractère de la ligne en bas de l'écran
GPasser à la dernière ligne de ce fichier (couramment utilisé)
nGn est un nombre. Passez à la ligne n de ce fichier. Par exemple, 20G sera déplacé vers le 20ème emplacement de ce fichier. Ligne (peut être utilisé avec :set nu)
gg pour passer à la première ligne de ce fichier, ce qui équivaut à 1G ! (Couramment utilisé)
n<Entrée>n est un nombre. Déplacez le curseur vers le bas de n lignes (couramment utilisé)
Rechercher et remplacer
/mot Recherchez une chaîne nommée mot sous le curseur. Par exemple, pour rechercher vbird dans un fichier Pour cette chaîne, entrez simplement /vbird ! (Couramment utilisé)
?wordRecherchez une chaîne nommée mot au-dessus du curseur.
nCe n est le bouton anglais. Représente l’action de répéter la recherche précédente. Par exemple, Si nous venons d'exécuter /vbird pour rechercher vers le bas la chaîne vbird, alors après avoir appuyé sur n, nous continuerons à rechercher vers le bas le nom suivant vbird. chaîne. Si ?vbird est exécuté, alors appuyer sur n continuera à rechercher vers le haut la chaîne nommée vbird !
NCe N est le bouton anglais. Tout le contraire de n, c'est "inverse" pour effectuer l'action de recherche précédente. Par exemple, après /vbird, appuyer sur N signifie « haut » pour rechercher vbird.
Utiliser /word avec n et N est très utile ! Il vous permet de retrouver à plusieurs reprises certains des mots-clés que vous avez recherchés !
:n1,n2s/word1/word2/gn1 et n2 sont des nombres. Recherchez la chaîne word1 entre les lignes n1 et n2 et remplacez la chaîne par mot2 ! Par exemple, rechercher vbird entre les lignes 100 et 200 et le remplacer par VBIRD serait :
『:100 200s/vbird/VBIRD/g』. (Couramment utilisé)
:1,$s/word1/word2/gRecherchez la chaîne word1 de la première ligne à la dernière ligne et remplacez-la par ceci chaîne pour mot2 ! (Couramment utilisé)
:1,$s/word1/word2/gcRecherchez la chaîne word1 de la première ligne à la dernière ligne et remplacez-la par ceci chaîne pour mot2 ! Et affichez les caractères d'invite à l'utilisateur pour confirmer avant de remplacer Doit-il être remplacé ? (Couramment utilisé)
Supprimer, copier et coller
x, X en un ligne Parmi les caractères, x signifie supprimer un caractère en arrière (équivalent à la touche [suppr]), X consiste à supprimer un caractère vers l'avant (équivalent à [retour arrière], qui est la touche retour arrière) (Couramment utilisé)
nxn est un nombre, supprimez n caractères vers l'arrière en continu. Par exemple, je souhaite supprimer 10 caractères d'affilée, "10x".
ddSupprimer toute la ligne où se trouve le curseur (couramment utilisé)
ndd n est un nombre. Supprimez n colonnes vers le bas, là où se trouve le curseur. Par exemple, 20dd supprime 20 colonnes. (Couramment utilisé)
d1GSupprimer toutes les données du curseur jusqu'à la première ligne
dGSupprimer toutes les données du curseur jusqu'à la dernière ligne
d$Supprimer du curseur jusqu'au dernier caractère de la ligne
d0C'est le 0 numérique, supprimez l'endroit où se trouve le curseur, allez au premier caractère de la ligne
yyCopier La ligne où se trouve le curseur (couramment utilisé)
nyyn est un nombre. Copiez n colonnes vers le bas, là où se trouve le curseur, par exemple, 20yy copie 20 Colonne (couramment utilisée)
y1GCopiez toutes les données de la colonne où se trouve le curseur vers la première colonne
yG Copiez toutes les données de la colonne où se trouve le curseur vers la dernière colonne
y0Copiez toutes les données du caractère où se trouve le curseur au début de la ligne
y$Copiez le caractère où se trouve le curseur dans toutes les données à la fin de la ligne
p, Pp signifie coller les données copiées sur la ligne sous le curseur, et P signifie les coller sur la ligne au-dessus du curseur ! Par exemple, mon curseur se trouve actuellement sur la ligne 20 et 10 lignes de données ont été copiées. Puis après avoir appuyé sur p, Ces 10 lignes de données seront collées après les 20 lignes d'origine, c'est-à-dire à partir de la ligne 21. Mais que se passe-t-il si vous appuyez sur P ? Ensuite, la ligne 20 d'origine sera repoussée vers la ligne 30. (Couramment utilisé)
J Combinez les données de la colonne où se trouve le curseur et la colonne suivante dans la même colonne
cSupprimez plusieurs données à plusieurs reprises, par exemple, supprimez 10 lignes vers le bas, [ 10cj ]
uRestaurez l'action précédente. (Couramment utilisé)
[Ctrl]+rRétablir l'action précédente. (Couramment utilisé)
Ce u et [Ctrl]+r sont des commandes très couramment utilisées ! L'un est la restauration, l'autre la refonte~ Utilisez ces deux touches de fonction pour votre édition, hehe ! Très heureux!
.N'en doutez pas ! C'est le point décimal ! Cela signifie répéter l’action précédente.Si vous souhaitez supprimer, coller à plusieurs reprises, etc., appuyez simplement sur le point décimal "." ! (Couramment utilisé)

Partie 2 : Description des boutons disponibles pour passer du mode normal au mode édition

Entrez en mode d'édition par insertion ou remplacement
进入插入或取代的编辑模式
i, I进入插入模式(Insert mode):
i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A进入插入模式(Insert mode):
a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O进入插入模式(Insert mode):
这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]退出编辑模式,回到一般模式中(常用)
i, I<🎜>Entrer en mode Insertion :
je veux dire "Insérer à partir de la position actuelle du curseur", je veux dire "Insérer à partir du premier caractère autre qu'un espace sur la ligne actuelle". (Couramment utilisé)<🎜><🎜>a, A<🎜>Entrer en mode Insertion :
a signifie "commencer l'insertion à partir du caractère suivant où se trouve actuellement le curseur", A Il s'agit de "Insérer à partir du dernier caractère de la ligne où se trouve le curseur". (Couramment utilisé)<🎜><🎜>o, O<🎜>Entrer en mode Insertion :
Il s'agit de la version majuscule et minuscule de la lettre anglaise o. o signifie « Insérer une nouvelle ligne à la ligne suivante où se trouve actuellement le curseur » ; O Insérez une nouvelle ligne au-dessus de la position actuelle du curseur ! (Couramment utilisé)<🎜><🎜>r, R<🎜>Entrer en mode Remplacement :
r ne remplacera qu'une seule fois le caractère où se trouve le curseur ; R remplacera toujours le caractère où se trouve le curseur jusqu'à ce que le caractère où se trouve le curseur soit remplacé. jusqu'à ESC (Couramment utilisé)<🎜><🎜>Parmi les touches ci-dessus, "" apparaîtra dans le coin inférieur gauche. de l'écran vi --INSERT--』 ou 『--REPLACE--』. Vous pouvez déjà reconnaître cette action à partir de son nom ! ! La particularité est que, comme nous l'avons mentionné ci-dessus, lorsque vous souhaitez saisir des caractères dans le fichier, Vous devez voir INSÉRER ou REMPLACER dans le coin inférieur gauche pour participer ! <🎜><🎜>[Esc]<🎜>Quitter le mode édition et revenir au mode normal (Common)<🎜><🎜 > <🎜><🎜>

Partie 3 : Description des boutons disponibles pour passer du mode normal au mode ligne de commande

指令列的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令列模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
vim 环境的变更
:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号!

Attention particulière, dans vi/vim, les nombres ont beaucoup de sens ! Le nombre représente généralement le nombre de répétitions que cela signifie ! Cela peut aussi signifier à quel numéro s'adresser ou quelque chose du genre.

Par exemple, si vous souhaitez supprimer 50 lignes, utilisez "50dd", non ? Le numéro est ajouté avant l'action, que se passe-t-il si je souhaite descendre de 20 lignes ? C'est "20j" ou "20↓".