Dans ce chapitre, nous allons comprendre comment l’éditeur vi fonctionne sous Unix. Il existe de nombreuses façons d’éditer des fichiers sous Unix. L’édition de fichiers à l’aide de l’éditeur de texte orienté écran vi est l’une des meilleures façons. Cet éditeur vous permet d’éditer des lignes en contexte avec d’autres lignes dans le fichier.
Une version améliorée de l’éditeur vi qui s’appelle le VIM a également été rendue disponible maintenant. Ici, VIM signifie Vi IMproved.
vi est généralement considéré comme la norme de facto dans les éditeurs Unix parce que –
-
Il est généralement disponible sur toutes les saveurs du système Unix.
-
Ses implémentations sont très similaires à travers le conseil.
-
Il nécessite très peu de ressources.
-
Il est plus convivial que d’autres éditeurs tels que le ed ou le ex.
Vous pouvez utiliser l’éditeur vi pour modifier un fichier existant ou pour créer un nouveau fichier à partir de zéro. Vous pouvez également utiliser cet éditeur pour simplement lire un fichier texte.
Démarrer l’éditeur vi
Le tableau suivant présente les commandes de base pour utiliser l’éditeur vi –
Sr.Non. | Commande & Description |
---|---|
1 |
vi filename Créer un nouveau fichier s’il n’existe pas déjà, sinon ouvrir un fichier existant. |
2 | Vi -R nom du fichier
Ouvre un fichier existant en mode lecture seule. |
3 |
view nom du fichier Ouvre un fichier existant en mode lecture seule. |
Voici un exemple pour créer un nouveau fichier testfile s’il n’existe pas déjà dans le répertoire de travail actuel –
$vi testfile
La commande ci-dessus générera la sortie suivante –
|~~~~~~~~~~~~"testfile"
Vous remarquerez un tilde (~) sur chaque ligne suivant le curseur. Un tilde représente une ligne non utilisée. Si une ligne ne commence pas par un tilde et semble vide, c’est qu’un espace, une tabulation, une nouvelle ligne ou un autre caractère non visualisable est présent.
Vous avez maintenant un fichier ouvert sur lequel vous pouvez commencer à travailler. Avant d’aller plus loin, comprenons quelques concepts importants.
Modes d’opération
Lorsque nous travaillons avec l’éditeur vi, nous rencontrons généralement les deux modes suivants –
-
Mode commande – Ce mode vous permet d’effectuer des tâches administratives telles que l’enregistrement des fichiers, l’exécution des commandes, le déplacement du curseur, la coupe (arrachage) et le collage des lignes ou des mots, ainsi que la recherche et le remplacement. Dans ce mode, tout ce que vous tapez est interprété comme une commande.
-
Mode Insertion – Ce mode vous permet d’insérer du texte dans le fichier. Tout ce qui est tapé dans ce mode est interprété comme une entrée et placé dans le fichier.
Vi démarre toujours en mode commande. Pour entrer du texte, vous devez être en mode insertion pour lequel il suffit de taper i. Pour sortir du mode insertion, appuyez sur la touche Esc, ce qui vous ramènera au mode commande.
Introduction – Si vous n’êtes pas sûr du mode dans lequel vous êtes, appuyez deux fois sur la touche Esc ; cela vous amènera au mode commande. Vous ouvrez un fichier à l’aide de l’éditeur vi. Commencez par taper quelques caractères et venez ensuite en mode commande pour comprendre la différence.
Sortir de vi
La commande pour sortir de vi est :q. Une fois en mode commande, tapez deux points, et ‘q’, suivi de retour. Si votre fichier a été modifié de quelque manière que ce soit, l’éditeur vous en avertira, et ne vous laissera pas quitter. Pour ignorer ce message, la commande permettant de quitter vi sans sauvegarder est :q ! Cela vous permet de quitter vi sans enregistrer aucune des modifications.
La commande pour enregistrer le contenu de l’éditeur est :w. Vous pouvez combiner la commande ci-dessus avec la commande quit, ou utiliser :wq et return.
La façon la plus simple d’enregistrer vos modifications et de quitter vi est la commande ZZ. Lorsque vous êtes en mode commande, tapez ZZ. La commande ZZ fonctionne de la même manière que la commande :wq.
Si vous voulez spécifier/établir un nom particulier pour le fichier, vous pouvez le faire en le spécifiant après le :w. Par exemple, si vous voulez enregistrer le fichier sur lequel vous travaillez sous un autre nom de fichier appelé filename2, vous devez taper :w filename2 et revenir.
Déplacement dans un fichier
Pour vous déplacer dans un fichier sans affecter votre texte, vous devez être en mode commande (appuyez deux fois sur Esc). Le tableau suivant énumère quelques commandes que vous pouvez utiliser pour vous déplacer d’un caractère à la fois –
Sr.No. | Commande & Description | 1 |
k Déplace le curseur vers le haut. une ligne |
2 |
j Déplace le curseur vers le bas d’une ligne |
---|---|
3 |
Déplace le curseur vers la gauche d’un caractère le curseur vers la gauche d’un caractère |
4 |
l Déplace le curseur vers la droite d’un caractère |
Les points suivants doivent être pris en compte pour se déplacer dans un fichier –
-
Vi est sensible à la casse.sensible à la casse. Vous devez faire attention aux majuscules lorsque vous utilisez les commandes.
-
La plupart des commandes de vi peuvent être précédées du nombre de fois que vous voulez que l’action se produise. Par exemple, 2j déplace le curseur deux lignes plus bas que l’emplacement du curseur.
Il existe de nombreuses autres façons de se déplacer dans un fichier en vi. N’oubliez pas que vous devez être en mode commande (appuyez deux fois sur Esc). Le tableau suivant énumère quelques commandes pour se déplacer dans le fichier –
Donné ci-dessous est la liste des commandes pour se déplacer dans le fichier.
Sr.No. | Commande & Description | 1 |
0 ou &verbar ; Positionne le curseur au début d’une ligne |
|
---|---|---|---|---|
2 |
Positionne le curseur à la fin d’une ligne |
|||
3 |
w Positionne le curseur sur le mot suivant |
4 |
b Positionne le curseur sur le mot précédent |
5 |
( Positionne le curseur au début de la phrase actuelle |
6 | .
) Pose le curseur au début de la phrase suivante |
|||
E
Déplace le curseur à la fin du mot délimité par un blanc |
8 |
{ Déplace un paragraphe en arrière |
9 |
} Déplace un paragraphe en avant . |
10 |
] Déplace une section vers l’avant |
12 |
n| Déplace la colonne n dans la ligne actuelle |
13 |
1G Déplacements vers la première ligne du fichier |
14 |
G Déplacements vers la dernière ligne du fichier |
. à la dernière ligne du fichier | 15 |
nG Déplace à la nième ligne du fichier |
16 |
:n Déplacements vers la nième ligne du fichier |
|||
17 |
fc Déplacements vers l’avant vers c |
18 |
Fc Déplacements retour à c |
19 |
H Déplacements vers le haut de l’écran |
20 |
nH Déplacements vers la nième ligne depuis le haut de l’écran |
21 |
M Déplacements vers le milieu de l’écran |
|
22 |
L Déplacements vers le le bas de l’écran |
23 |
nL Déplacement vers la nième ligne à partir du bas de l’écran |
24 |
😡 Un colon suivi d’un nombre positionnerait le curseur sur le numéro de ligne représenté par x |
Commandes de contrôle
Les commandes suivantes peuvent être utilisées avec la touche de contrôle pour exécuter les fonctions indiquées dans le tableau ci-dessous –
Ci-dessous figure la liste des commandes de contrôle.
Sr.No. | Commande & Description | 1 |
CTRL&plus ;d Déplacements vers l’avant d’1/2 écran |
2 | CTRL&plus ;f
Déplacement vers l’avant d’un plein écran |
3 | CTRL&plus ;u
Déplacements vers l’arrière d’1/2 écran |
4 |
CTRL&plus ;b Reculer d’un plein écran |
5 |
CTRL&plus ;e Déplace l’écran d’une ligne vers le haut |
6 |
CTRL&plus ;y Déplace l’écran d’une ligne vers le bas |
7 |
CTRL&plus ;u Déplace l’écran d’une 1/2 page vers le haut |
8 |
CTRL&plus ;d Déplace l’écran d’une 1/2 page vers le bas |
9 |
CTRL&plus ;b Déplace l’écran d’une page vers le haut |
10 |
CTRL&plus ;f Déplace l’écran d’une page vers le bas |
11 |
CTRL&plus ;I Redessine l’écran |
---|
Modification des fichiers
Pour modifier le fichier, vous devez être en mode insertion. Il existe plusieurs façons d’accéder au mode insertion à partir du mode commande –
Sr.No. | Commande & Description | |||
---|---|---|---|---|
1 |
i Insère du texte avant l’emplacement actuel du curseur |
|||
2 | I
Insère du texte au début de la ligne actuelle |
3 |
a Insère du texte après l’emplacement actuel du curseur |
4 |
A Insère du texte à la fin de la ligne actuelle |
5 |
o Crée une nouvelle ligne pour la saisie de texte sous l’emplacement du curseur |
6 | O
Crée une nouvelle ligne pour la saisie de texte au-dessus de l’emplacement du curseur |
Suppression de caractères
Voici une liste de commandes importantes, qui peuvent être utilisées pour supprimer des caractères et des lignes dans un fichier ouvert –
Sr.No. | Commande & Description | 1 |
x Supprime le caractère situé sous l’emplacement du curseur |
---|---|
2 |
X . Supprime le caractère avant l’emplacement du curseur |
3 | 4 |
d^ Supprime de la position actuelle du curseur jusqu’au début de la ligne |
5 |
d$ Supprime de la position actuelle du curseur jusqu’à la fin de la ligne |
6 |
D . Supprime de la position du curseur à la fin de la ligne actuelle |
7 |
dd Supprime la ligne sur laquelle se trouve le curseur |
Comme mentionné ci-dessus, la plupart des commandes de vi peuvent être précédées du nombre de fois que vous souhaitez que l’action se produise. Par exemple, 2x supprime deux caractères sous l’emplacement du curseur et 2dd supprime deux lignes sur lesquelles se trouve le curseur.
Il est recommandé de pratiquer les commandes avant de poursuivre.
Commandes de modification
Vous avez également la possibilité de modifier des caractères, des mots ou des lignes dans vi sans les supprimer. Voici les commandes concernées –
Sr.No. | Commande & Description | 1 |
cc Supprime le contenu de la ligne, vous laissant en mode insertion. |
2 |
cw Change le mot sur lequel se trouve le curseur à la fin du mot en w minuscule. |
3 |
r Remplace le caractère sous le curseur. vi revient au mode de commande après la saisie du remplacement. |
4 |
R Surécrit plusieurs caractères en commençant par le caractère actuellement sous le curseur. Vous devez utiliser Esc pour arrêter l’écrasement. |
5 |
s Remplace le caractère actuel par le caractère que vous tapez. Ensuite, vous restez en mode insertion. |
---|---|
6 |
S Supprime la ligne sur laquelle se trouve le curseur et la remplace par le nouveau texte. Après la saisie du nouveau texte, vi reste en mode insertion. |
Commandes de copier et de coller
Vous pouvez copier des lignes ou des mots à partir d’un endroit et ensuite les coller à un autre endroit en utilisant les commandes suivantes –
Sr.No. | Commande & Description |
---|---|
1 |
yy Copie la ligne en cours. |
2 |
yw Copie le mot courant à partir du caractère sur lequel se trouve le curseur w minuscule, jusqu’à la fin du mot. |
3 |
p Pose le texte copié après le curseur. |
4 |
P Pose le texte arraché avant le curseur. |
Commandes avancées
Il existe certaines commandes avancées qui simplifient l’édition au quotidien et permettent une utilisation plus efficace de vi –
La liste des commandes avancées est donnée ci-dessous.
Sr.No. | Commande & Description | 1 |
J Joint la ligne actuelle avec la suivante. Un nombre de commandes j joint de nombreuses lignes. |
---|---|---|
2 |
<< Décale la ligne actuelle vers la gauche d’une largeur de décalage. |
|
3 |
>> Décale la ligne actuelle vers la droite d’une largeur de décalage. |
|
4 |
~ Change la casse du caractère sous le curseur. |
5 |
^G Appuyez sur les touches Ctrl et G en même temps pour afficher le nom de fichier actuel et l’état. |
6 |
U Rétablit la ligne actuelle à l’état dans lequel elle était avant que le curseur n’entre dans la ligne. |
7 |
u Cela permet d’annuler la dernière modification qui a été faite dans le fichier. Taper ‘u’ à nouveau refait le changement. |
8 |
J Jointe la ligne actuelle avec la suivante. Un compte joint autant de lignes. |
9 |
:f Affiche la position actuelle dans le fichier en % et le nom du fichier, le nombre total de fichier. |
10 |
:f nom de fichier Renomme le fichier actuel en nom de fichier. |
11 |
:w nom de fichier Ecrit dans le fichier nom de fichier. |
12 | :e nom_fichier
Ouvre un autre fichier avec nom_fichier. |
13 | :cd dirname
Change le répertoire de travail actuel en dirname. |
|
14 |
:e # Change entre deux fichiers ouverts. |
15 |
:n Dans le cas où vous ouvrez plusieurs fichiers en utilisant vi, utilisez :n pour passer au fichier suivant dans la série. |
16 |
:p Dans le cas où vous ouvrez plusieurs fichiers en utilisant vi, utilisez :p pour aller au fichier précédent dans la série. |
17 |
:N Dans le cas où vous ouvrez plusieurs fichiers en utilisant vi, utilisez :N pour aller au fichier précédent dans la série. |
18 | :r fichier
Lit le fichier et l’insère après la ligne courante. |
19 |
:nr fichier Lit le fichier et l’insère après la ligne n. |
Recherche de mots et de caractères
L’éditeur vi dispose de deux types de recherche : chaîne de caractères et caractère. Pour une recherche de chaîne de caractères, les commandes / et ? sont utilisées. Lorsque vous lancez ces commandes, la commande qui vient d’être tapée s’affiche sur la dernière ligne de l’écran, où vous tapez la chaîne de caractères particulière à rechercher.
Ces deux commandes ne diffèrent que par la direction dans laquelle la recherche s’effectue –
-
La commande / effectue une recherche vers l’avant (vers le bas) dans le fichier.
-
La commande ? effectue une recherche vers l’arrière (vers le haut) dans le fichier.
Les commandes n et N répètent la commande de recherche précédente dans le même sens ou dans le sens opposé, respectivement. Certains caractères ont une signification particulière. Ces caractères doivent être précédés d’une barre oblique inverse (\) pour être inclus dans l’expression de recherche.
Sr.No. | Caractère &Description | 1 |
^ Recherche au début de la ligne (Utilisation au début d’une expression de recherche). |
2 | Met en correspondance un seul caractère. | 3 |
* Met en correspondance zéro ou plus du caractère précédent. |
4 |
Fin de ligne (Utilisation à la fin de l’expression de recherche). |
5 |
[ Débute un ensemble d’expressions correspondantes ou non correspondantes. |
6 |
< Ceci est mis dans une expression échappée avec la barre oblique inverse pour trouver la fin ou le début d’un mot. |
7 |
> Cela aide à voir la description du caractère ‘<‘ ci-dessus. |
---|
La recherche de caractères effectue une recherche dans une ligne pour trouver un caractère saisi après la commande. Les commandes f et F recherchent un caractère sur la ligne en cours uniquement. f recherche en avant et F en arrière et le curseur se déplace à la position du caractère trouvé.
Les commandes t et T recherchent un caractère sur la ligne actuelle seulement, mais pour t, le curseur se déplace à la position avant le caractère, et T recherche la ligne en arrière jusqu’à la position après le caractère.
Commandes set
Vous pouvez changer l’apparence de votre écran vi en utilisant les commandes :set suivantes. Une fois que vous êtes en mode commande, tapez :set suivi de l’une des commandes suivantes.
Sr.No. | Commande & Description | 1 |
:set ic Ignore la casse lors de la recherche |
---|---|---|
2 |
:set ai Définit l’indentation automatique |
3 |
:set noai Désactive l’indentation automatique |
4 |
:set nu Affiche les lignes avec les numéros de ligne sur le côté gauche |
5 |
:set sw Définit la largeur d’un tabstop logiciel. Par exemple, vous définissez une largeur de tabulation de 4 avec cette commande – :set sw = 4 |
6 |
:set ws Si wrapscan est défini, et que le mot n’est pas trouvé au bas du fichier, il essaiera de le chercher au début |
|
7 |
:set wm Si cette option a une valeur supérieure à zéro, l’éditeur fera automatiquement du « word wrap ». Par exemple, pour définir la marge d’enveloppement à deux caractères, vous taperez ceci : :set wm = 2 |
|
8 |
:set ro Change le type de fichier en « lecture seule » |
9 |
:set term Imprime le type de terminal |
10 |
:set bf Rejeter les caractères de contrôle de l’entrée |
Exécution de commandes
Le vi a la capacité d’exécuter des commandes depuis l’éditeur. Pour exécuter une commande, il suffit d’aller dans le mode commande et de taper : ! command.
Par exemple, si vous voulez vérifier si un fichier existe avant d’essayer d’enregistrer votre fichier avec ce nom de fichier, vous pouvez taper : ! ls et vous verrez la sortie de ls à l’écran.
Vous pouvez appuyer sur n’importe quelle touche (ou la séquence d’échappement de la commande) pour revenir à votre session vi.
Remplacer du texte
La commande de substitution (:s/) vous permet de remplacer rapidement des mots ou des groupes de mots dans vos fichiers. Voici la syntaxe pour remplacer du texte –
:s/search/replace/g
Le g signifie globalement. Le résultat de cette commande est que toutes les occurrences sur la ligne du curseur sont modifiées.
Points importants à noter
Les points suivants ajouteront à votre succès avec vi –
-
Vous devez être en mode commande pour utiliser les commandes. (Appuyez deux fois sur Esc à tout moment pour vous assurer que vous êtes en mode commande.)
-
Vous devez être prudent avec les commandes. Celles-ci sont sensibles à la casse.
-
Vous devez être en mode insertion pour saisir du texte.
.