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

Linux vi/vim

Tous les systèmes Unix Like incluent l'éditeur de texte vi, d'autres éditeurs de texte ne sont pas nécessairement présents.

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

Vim a la capacité de modifier le programme, peut activer le coloriage des polices pour identifier la syntaxe correcte, ce qui facilite la conception de programmes.

Articles associés :Le plus complet Vim shortcut key map - from beginner to advanced

Qu'est-ce que vim ?

Vim est un éditeur de texte développé à partir de vi. Les fonctionnalités pratiques telles que la complétion de code, la compilation et le saut d'erreur facilitent particulièrement la programmation et sont largement utilisées par les programmeurs.

En termes simples, vi est un ancien traitement de texte, mais ses fonctionnalités sont très complètes, bien que encore des améliorations peuvent être apportées. Vim peut être dit être un excellent outil pour les développeurs de programmes.

Visitez le site Web officiel de vim (http://www.vim.org) Même si je dis que vim est un outil de développement de programme et non un logiciel de traitement de texte.

Vim keyboard map :

vi/L'utilisation de vim

De base, vi/vim est divisé en trois modes, à savoirMode commande (Command mode),Mode insertion (Insert mode)etMode commande en ligne de fond (Last line mode)Ces trois modes ont les fonctions suivantes :

Mode commande :

L'utilisateur vient de démarrer vi/vim, vous entrez dans le mode commande.

Dans cet état, les动作 de frappe du clavier sont reconnus par Vim comme des commandes, et non comme des caractères d'entrée. Par exemple, si nous appuyons sur i maintenant, nous ne saisissons pas un caractère, i est traité comme une commande.

Voici quelques commandes courantes :

  • i Passer au mode insertion pour entrer des caractères.

  • x Supprimer le caractère à la position du curseur actuel.

  • : Passer au mode commande en ligne de fond pour entrer des commandes sur la dernière ligne.

Pour éditer du texte : démarrez Vim, entrez dans le mode commande, appuyez sur i pour passer au mode insertion.

Le mode commande ne contient que les commandes de base, donc vous devez toujours dépendre du mode commande en ligne de fond pour entrer plus de commandes.

Mode insertion

Appuyez sur i en mode commande pour entrer dans le mode insertion.

Dans le mode d'entrée, vous pouvez utiliser les touches suivantes :

  • Touches de caractères et combinaisons avec ShiftPour saisir des caractères

  • ENTERPour entrer la touche d'entrée, sauter une ligne

  • BACK SPACEPour supprimer la touche d'effacement, supprimer le caractère précédent le curseur

  • DELPour supprimer la touche, supprimer le caractère suivant le curseur

  • Touches de directionPour déplacer le curseur dans le texte

  • HOME/ENDPour déplacer le curseur au début de la ligne/Fin de ligne

  • Page Up/Page DownVers le haut/Défilement vers le bas

  • InsertChanger le curseur en mode d'entrée/Mode de remplacement, le curseur devient une barre verticale/Souligné

  • ESCSortir du mode d'entrée, passer au mode de commande

Mode de commande en ligne

Appuyez sur : (deux points anglais) pour entrer dans le mode de commande en ligne.

Le mode de commande en ligne peut saisir une ou plusieurs commandes de caractères, il y a beaucoup de commandes disponibles.

Dans le mode de commande en ligne, les commandes de base sont les suivantes (les points-virgules ont été omis) :

  • q Quitter le programme

  • w Sauvegarder le fichier

Appuyez sur la touche ESC pour quitter le mode de commande en ligne à tout moment.

Pour faire simple, nous pouvons représenter ces trois modes par les icônes suivantes :

vi/Exemple d'utilisation de vim

Utiliser vi/Entrer en mode normal dans vim

Pour utiliser vi pour créer un fichier nommé w3Lorsque vous utilisez vi pour créer un fichier nommé w

$ vim w3codebox.txt

Tapez directement Nom de fichier vi Vous pouvez entrer dans le mode normal de vi. Notez bien que vous devez toujours ajouter un nom de fichier après vi, que le fichier existe ou non !

Appuyez sur i pour entrer dans le mode d'entrée (également appelé mode d'édition) et commencer à éditer du texte

Dans le mode normal, appuyez simplement sur i, o, a ou d'autres caractères pour entrer dans le mode d'entrée !

Dans le mode d'édition, vous pouvez voir que dans la barre d'état en bas à gauche, il apparaît –INSERT- cette mention, c'est un提示 que vous pouvez saisir n'importe quel caractère.

À ce moment-là, sauf Esc En dehors de cette touche, toutes les autres touches peuvent être considérées comme des touches d'entrée générales, donc vous pouvez effectuer toute l'édition que vous souhaitez.

Appuyez sur le bouton ESC pour revenir au mode normal

Bon, supposons que j'ai terminé l'édition comme indiqué ci-dessus, alors comment dois-je quitter ? Oui ! Pas du tout ! C'est en appuyant sur Esc Ce bouton ici ! Vous allez rapidement remarquer que le – INSERT – en bas à gauche de l'écran a disparu !

Appuyez sur une touche dans le mode normal :wq Quitter vi après l'enregistrement

OK, nous devons archiver, l'instruction pour sauvegarder et quitter est simple, tapez :wq vous pouvez sauvegarder et quitter!

OK! Nous avons donc réussi à créer un w3le fichier codebox.txt.

vi/Explication des touches vim

En plus des exemples simples comme i, Esc et :wq mentionnés ci-dessus, vim offre en réalité de nombreuses autres touches à utiliser.

Première partie : les déplacements de curseur, copier-coller, recherche et remplacement disponibles en mode général

Méthodes de déplacement du curseur
h ou la flèche vers la gauche (←)Déplacez le curseur d'un caractère vers la gauche
j ou la flèche vers le bas (↓)Déplacez le curseur d'un caractère vers le bas
k ou la flèche vers le haut (↑)Déplacez le curseur d'un caractère vers le haut
l ou la flèche droite (→)Déplacez le curseur d'un caractère vers la droite
Si vous placez votre main droite sur le clavier, vous verrez que hjkl sont alignés, donc vous pouvez utiliser ces quatre boutons pour déplacer le curseur. Si vous souhaitez vous déplacer plusieurs fois, par exemple vers le bas 30 lignes, vous pouvez utiliser "30j" ou "3La combinaison de touches 0↓" C'est-à-dire ajoutez le nombre de fois que vous souhaitez effectuer cette action et appuyez sur l'action !
[Ctrl] + [f]Déplacez l'écran 'vers le bas' d'une page, équivalent à la touche [Page Bas] (Usuel)
[Ctrl] + [b]Déplacez l'écran 'vers le haut' d'une page, équivalent à la touche [Page Haut] (Usuel)
[Ctrl] + [d]Déplacez l'écran 'vers le bas' d'une moitié de page
[Ctrl] + [u]Déplacez l'écran 'vers le haut' d'une moitié de page
+Déplacez le curseur à la ligne suivante de caractères non espaces
-Déplacez le curseur à la ligne précédente de caractères non espaces
n<espace>Ce n'est pas un nombre, par exemple 20 . Appuyez sur le nombre puis appuyez sur la touche d'espace, le curseur se déplacera vers la droite de cette ligne n caractère. Par exemple 20<espace> déplacera le curseur vers l'arrière 2distance de 0 caractères.
0 ou touche de fonction [Début]C'est le nombre " 0 " : déplacez-vous au premier caractère de cette ligne (Usuel)
$ ou touche de fonction [Fin]Déplacez-vous à la dernière lettre de cette ligne (dans le cas courant)
HDéplacez le curseur au premier caractère de la ligne la plus en haut de cet écran
MDéplacez le curseur au premier caractère de la ligne centrale de cet écran
LDéplacez le curseur au premier caractère de la ligne la plus en bas de cet écran
GDéplacez-vous à la dernière ligne de ce fichier (dans le cas courant)
nGn est un nombre. Déplacez-vous à la ligne n de ce fichier. Par exemple 20G vous déplacera à la ligne 20 ligne (combiné avec :set nu)
ggDéplacez-vous à la première ligne de ce fichier, ce qui est équivalent à 1G ah ! (Usuel)
n<Entrée>n est un nombre. Déplacez le curseur vers le bas de n lignes (dans le cas courant)
Recherche et remplacement
/motRecherchez une chaîne de caractères nommée word en dessous du curseur. Par exemple, pour rechercher vbird dans un fichier Cette chaîne de caractères, entrez /vbird suffira ! (Usuel)
?wordRecherchez une chaîne de caractères nommée word au-dessus du curseur.
nCe n'est pas un bouton anglais. Il représente l'action de répeter la recherche précédente. Par exemple, Si nous avons exécuté récemment /vbird rechercher vers le bas la chaîne de caractères vbird, appuyez sur n après cela, continuez à chercher le nom suivant vbird de la chaîne de caractères. Si vous exécutez ?vbird, appuyez sur n continuera à chercher les chaînes de caractères nommées vbird en haut !
NCe N est une touche anglaise. Il est opposé à n, pour 'chercher en sens inverse' l'action de recherche précédente. Par exemple /vbird, puis appuyez sur N signifie 'chercher vers le haut' vbird .
Utiliser /word avec n et N est très utile ! Cela vous permet de trouver à nouveau des mots-clés que vous cherchez souvent !
:n1,n2s/mot1/mot2/gn1 et n2 est un nombre. À la ligne n1 et n2 Entre les lignes chercher word1 Cette chaîne de caractères, et remplacer cette chaîne de caractères par mot2 !Par exemple, dans 100 à 200 lignes entre la recherche vbird et le remplacement par VBIRD :
『:100,200s/vbird/VBIRD/g』.(couramment utilisé)
:1, $s/mot1/mot2/g ou :%s/mot1/mot2/gRechercher word de la première ligne à la dernière ligne1 chaîne de caractères, et remplacer cette chaîne de caractères par mot2 !(couramment utilisé)
:1, $s/mot1/mot2/gc ou :%s/mot1/mot2/gcRechercher word de la première ligne à la dernière ligne1 chaîne de caractères, et remplacer cette chaîne de caractères par mot2 !Et afficher un message d'invite avant de remplacer (confirm) Besoin de remplacer ! (couramment utilisé)
Supprimer, copier et coller
x, XDans une ligne de texte, x pour supprimer un caractère vers l'arrière (équivalent à [del] appui) X pour supprimer un caractère vers l'avant (équivalent à [backspace], c'est-à-dire la touche d'effacement) (Usuel)
nxn est un nombre, supprimer n caractères en continu. Par exemple, je veux supprimer en continu 10 caractère, 『10』。
ddSupprimer la ligne où se trouve le curseur intégralement (couramment utilisé)
nddn est un nombre. Supprimer les n lignes en dessous du curseur, par exemple 20dd est pour supprimer 20 lignes (Usuel)
d1GSupprimer du curseur jusqu'à la première ligne
dGSupprimer du curseur jusqu'à la dernière ligne
d$Supprimer le caractère où se trouve le curseur jusqu'au dernier caractère de la ligne
d0C'est le zéro numérique, supprimer le caractère où se trouve le curseur jusqu'au premier caractère de la ligne
yyCopier la ligne où se trouve le curseur (couramment utilisé)
nyyn est un nombre. Copier les n lignes en dessous du curseur, par exemple 20yy est pour copier 20 ligne (couramment utilisé)
y1GCopier la ligne où se trouve le curseur jusqu'à la première ligne
yGCopier la ligne où se trouve le curseur jusqu'à la dernière ligne
y0Copier le caractère où se trouve le curseur jusqu'au début de la ligne
y$Copier le caractère où se trouve le curseur jusqu'à la fin de la ligne
p, Pp pour coller les données copiées sous le curseur, P pour coller au dessus du curseur ! Par exemple, le curseur est actuellement à la ligne 20 lignes, et elles ont été copiées 10 Les données. Appuyez sur p ensuite, que 10 Les données de la ligne seront collées sur les données originales 2La ligne 0 après, c'est-à-dire à partir de 21 commence à coller. Mais si vous appuyez sur P ? Alors, la ligne originale 2La ligne 0 sera poussée pour devenir 30 ligne. (Usuel)
JCombinez les données de la ligne où se trouve le curseur avec les données de la ligne suivante en une seule ligne
cSupprimez plusieurs données en répétition, par exemple, supprimez vers le bas 10 ligne, [ 10cj ]
uRestaurez l'action précédente (utilisé couramment)
[Ctrl]+rRefaites l'action précédente (utilisé couramment)
u avec [Ctrl]+r est une commande très courante ! L'une est pour restaurer, et l'autre pour refaire l'action une fois de plus ~ Avec ces deux touches de fonction, votre édition, hein ! C'est vraiment amusant !
.Ne vous inquiétez pas ! C'est bien le point décimal ! Cela signifie répéter l'action précédente. Si vous souhaitez répéter des actions comme la suppression répétée, le collage répété, etc., appuyez simplement sur le point décimal '.' ! (Usuel)

Deuxième partie : explications des boutons disponibles pour passer du mode général au mode d'édition

Entrer en mode d'édition ou de remplacement
i, IEntrer en mode d'insertion (Insert mode) :
i pour 'saisir à partir de la position actuelle du curseur', I pour 'commencer à saisir à partir du premier caractère non espace de la ligne actuelle'. (Usuel)
a, AEntrer en mode d'insertion (Insert mode) :
a pour 'commencer à saisir à partir du prochain caractère où se trouve le curseur', A Pour 'commencer à saisir à partir de la dernière caractère de la ligne où se trouve le curseur'(utilisé couramment).
o, OEntrer en mode d'insertion (Insert mode) :
C'est la taille de la lettre anglaise o, en majuscule. o pour insérer une nouvelle ligne en bas de la ligne où se trouve le curseur ; O pour insérer une nouvelle ligne en haut de la ligne où se trouve le curseur (utilisé couramment) !
r, REntrer en mode de remplacement (Replace mode) :
r ne remplacera qu'une seule fois le caractère à la position du curseur ; R continuera à remplacer le texte à la position du curseur jusqu'à ce que vous appuyiez sur ESC jusqu'à ce que;(utilisé couramment)
Dans l'image de vi, un message comme『--INSERT--『ou『--REPLACE--le signe '』'. Vous pouvez deviner cette action par son nom !! Notons en particulier que nous avons également mentionné précédemment, si vous souhaitez saisir des caractères dans le fichier, Il faut absolument voir INSERT ou REPLACE en bas à gauche pour pouvoir saisir des caractères !
[Esc]Sortir du mode d'édition et retourner au mode général (utilisé couramment)

Troisième partie : explications des boutons disponibles pour passer du mode général au mode ligne de commande

Instructions de stockage et de sortie de la ligne de commande
:wÉcrire les données éditées sur le disque dur (utilisé couramment)
:w!Si les attributs du fichier sont 'lecture seule', écrivez-forcé le fichier. Cependant, savoir si vous pouvez écrire ou non, Cela a encore à voir avec les permissions du fichier que vous avez pour ce fichier !
:qQuitter vi (utilisé couramment)
:q!Si vous avez modifié un fichier mais ne souhaitez pas le sauvegarder, utilisez ! pour quitter sans sauvegarder le fichier.
Attention, le point d'exclamation (!) dans vi a souvent le sens de 'obligatoire'~
:wqQuitter après l'enregistrement, si c'est :wq! alors c'est quitter après l'enregistrement forcé (Usuel)
ZZC'est la majuscule Z ! Si vous avez fait des modifications, enregistrez le fichier actuel et quittez ! Équivalent à (enregistrer et quitter)
ZQNe pas enregistrer, quitter force. Équivalent à :q!.
:w [filename]Enregistrer les données éditées dans un autre fichier (similaire à Enregistrer sous)
:r [filename]Lire les données d'un autre fichier dans les données d'édition. C'est-à-dire, 『filename』 Ajouter le contenu de ce fichier à la ligne après le curseur
:n1,n2 w [filename]Pour mettre n1 à n2 Le contenu est stocké dans le fichier filename.
:! commandQuitter temporairement vi pour exécuter le résultat de la commande en mode ligne de commande ! Par exemple
『:! ls /home』peut être consulté dans vi /Les informations de fichiers affichées par ls sous home !
Changement d'environnement vim
:set nuAffichage des numéros de ligne, après la configuration, le numéro de ligne apparaîtra devant chaque ligne
:set nonuContraires à set nu, pour désactiver les numéros de ligne !

Attention, dans vi/Dans vim, les nombres ont un sens important ! Les nombres représentent généralement le nombre de répétitions à effectuer. Ils peuvent également représenter l'aller au numéro de quelque chose.

Par exemple, pour supprimer 50 lignes, utilisez 『50dd』n'est-ce pas ! Le nombre est placé avant l'action, par exemple, pour descendre d'une ligne 20 lignes ? C'est alors『20j』ou bien『20↓』c'est ainsi que vous pouvez le faire.