Unix / Linux - Le didacticiel de l'éditeur vi

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. Édition de fichiers à l'aide de l'éditeur de texte orienté écranviest l'un des meilleurs moyens. Cet éditeur vous permet d'éditer des lignes en contexte avec d'autres lignes du fichier.

Une version améliorée de l'éditeur vi qui s'appelle le VIMa également été rendu disponible maintenant. Ici, VIM signifieVi IMprouvé.

vi est généralement considéré comme le standard de facto dans les éditeurs Unix car -

  • Il est généralement disponible sur toutes les versions du système Unix.

  • Ses implémentations sont très similaires dans tous les domaines.

  • Cela nécessite très peu de ressources.

  • Il est plus convivial que d'autres éditeurs tels que le ed ou la ex.

Vous pouvez utiliser le viéditeur pour éditer 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émarrage de l'éditeur vi

Le tableau suivant répertorie les commandes de base pour utiliser l'éditeur vi -

Sr.No. Commande et description
1

vi filename

Crée un nouveau fichier s'il n'existe pas déjà, sinon ouvre un fichier existant.

2

vi -R filename

Ouvre un fichier existant en mode lecture seule.

3

view filename

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 courant -

$vi testfile

La commande ci-dessus générera la sortie suivante -

|
~
~
~
~
~
~
~
~
~
~
~
~
"testfile" [New File]

Vous remarquerez un tilde(~) sur chaque ligne suivant le curseur. Un tilde représente une ligne inutilisée. Si une ligne ne commence pas par un tilde et semble vide, un espace, une tabulation, une nouvelle ligne ou un autre caractère non visible est présent.

Vous avez maintenant un fichier ouvert sur lequel commencer à travailler. Avant d'aller plus loin, comprenons quelques concepts importants.

Modes de fonctionnement

En travaillant avec l'éditeur vi, nous rencontrons généralement les deux modes suivants -

  • Command mode- Ce mode vous permet d'effectuer des tâches administratives telles que la sauvegarde des fichiers, l'exécution des commandes, le déplacement du curseur, le découpage (yanking) 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.

  • Insert mode- 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 commence toujours dans le command mode. Pour saisir du texte, vous devez être en mode insertion pour lequel il suffit de taperi. Pour sortir du mode insertion, appuyez sur la toucheEsc touche, qui vous ramènera au mode commande.

Hint- Si vous n'êtes pas sûr du mode dans lequel vous vous trouvez, appuyez deux fois sur la touche Echap; cela vous amènera au mode commande. Vous ouvrez un fichier à l'aide de l'éditeur vi. Commencez par taper quelques caractères, puis passez au mode commande pour comprendre la différence.

Sortir de vi

La commande pour quitter vi est :q. Une fois en mode commande, tapez deux-points et 'q', suivi de return. 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 de quitter vi sans enregistrer est:q!. Cela vous permet de quitter vi sans enregistrer les 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 revenir.

Le moyen le plus simple de save your changes and exit viest avec la commande ZZ. Lorsque vous êtes en mode commande, tapezZZ. leZZ La commande fonctionne de la même manière que la :wq commander.

Si vous souhaitez spécifier / énoncer un nom particulier pour le fichier, vous pouvez le faire en le spécifiant après le :w. Par exemple, si vous vouliez enregistrer le fichier sur lequel vous travailliez sous un autre nom de fichier appeléfilename2, vous taperiez :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 Echap). Le tableau suivant répertorie quelques commandes que vous pouvez utiliser pour vous déplacer d'un caractère à la fois -

Sr.No. Commande et description
1

k

Déplace le curseur d'une ligne vers le haut

2

j

Déplace le curseur d'une ligne vers le bas

3

h

Déplace 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. Vous devez faire attention à la capitalisation lors de l'utilisation des commandes.

  • La plupart des commandes de vi peuvent être précédées du nombre de fois où vous souhaitez que l'action se produise. Par exemple,2j déplace le curseur de deux lignes vers le bas de l'emplacement du curseur.

Il existe de nombreuses autres façons de se déplacer dans un fichier dans vi. N'oubliez pas que vous devez être en mode commande (press Esc twice). Le tableau suivant répertorie quelques commandes pour se déplacer dans le fichier -

Sr.No. Commande et description
1

0 or |

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

)

Positionne le curseur au début de la phrase suivante

sept

E

Se déplace à la fin du mot délimité vide

8

{

Recule un paragraphe

9

}

Avance un paragraphe

dix

[[

Recule une section

11

]]

Déplace une section vers l'avant

12

n|

Se déplace vers la colonne n dans la ligne courante

13

1G

Passe à la première ligne du fichier

14

G

Passe à la dernière ligne du fichier

15

nG

Passe au nth ligne du fichier

16

:n

Passe au nth ligne du fichier

17

fc

Avance vers c

18

Fc

Revient à c

19

H

Se déplace vers le haut de l'écran

20

nH

Passe au nth ligne depuis le haut de l'écran

21

M

Se déplace au milieu de l'écran

22

L

Déplacer vers le bas de l'écran

23

nL

Passe au nth ligne du bas de l'écran

24

:x

Deux points suivis d'un nombre positionneraient 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 -

Sr.No. Commande et description
1

CTRL+d

Avance de 1/2 écran

2

CTRL+f

Avance d'un plein écran

3

CTRL+u

Recule de 1/2 écran

4

CTRL+b

Recule d'un plein écran

5

CTRL+e

Déplace l'écran d'une ligne vers le haut

6

CTRL+y

Déplace l'écran d'une ligne vers le bas

sept

CTRL+u

Déplace l'écran vers le haut de 1/2 page

8

CTRL+d

Déplace l'écran vers le bas de 1/2 page

9

CTRL+b

Déplace l'écran d'une page vers le haut

dix

CTRL+f

Déplace l'écran d'une page vers le bas

11

CTRL+I

Redessine l'écran

Édition de fichiers

Pour éditer le fichier, vous devez être en mode insertion. Il existe de nombreuses façons d'entrer en mode insertion à partir du mode commande -

Sr.No. Commande et 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 courante

3

a

Insère du texte après l'emplacement actuel du curseur

4

A

Insère du texte à la fin de la ligne courante

5

o

Crée une nouvelle ligne pour l'entrée de texte sous l'emplacement du curseur

6

O

Crée une nouvelle ligne pour l'entrée 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 et description
1

x

Supprime le caractère sous l'emplacement du curseur

2

X

Supprime le caractère avant l'emplacement du curseur

3

dw

Supprime de l'emplacement actuel du curseur au mot suivant

4

d^

Supprime de la position actuelle du curseur au début de la ligne

5

d$

Supprime de la position actuelle du curseur à la fin de la ligne

6

D

Supprime de la position du curseur à la fin de la ligne actuelle

sept

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 où vous voulez 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 changement

Vous avez également la possibilité de modifier des caractères, des mots ou des lignes dans vi sans les supprimer. Voici les commandes pertinentes -

Sr.No. Commande et 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 du curseur à la minuscule w fin du mot.

3

r

Remplace le caractère sous le curseur. vi retourne au mode commande après la saisie du remplacement.

4

R

Remplace plusieurs caractères en commençant par le caractère actuellement sous le curseur. Tu dois utiliserEsc pour arrêter l'écrasement.

5

s

Remplace le caractère actuel par le caractère que vous tapez. Ensuite, vous êtes laissé en mode insertion.

6

S

Supprime la ligne sur laquelle se trouve le curseur et la remplace par le nouveau texte. Une fois le nouveau texte saisi, vi reste en mode insertion.

Commandes de copie et de collage

Vous pouvez copier des lignes ou des mots d'un endroit, puis les coller à un autre endroit à l'aide des commandes suivantes -

Sr.No. Commande et description
1

yy

Copie la ligne actuelle.

2

yw

Copie le mot actuel du caractère sur lequel le curseur w minuscule est activé, jusqu'à la fin du mot.

3

p

Place le texte copié après le curseur.

4

P

Place le texte extrait avant le curseur.

Commandes avancées

Il existe des commandes avancées qui simplifient l'édition au jour le jour et permettent une utilisation plus efficace de vi -

Sr.No. Commande et description
1

J

Joint la ligne actuelle avec la suivante. Un nombre de j commandes joignent plusieurs 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

Restaure la ligne actuelle dans l'état dans lequel elle se trouvait avant que le curseur n'entre dans la ligne.

sept

u

Cela permet d'annuler la dernière modification apportée au fichier. Taper à nouveau «u» refera le changement.

8

J

Joint la ligne actuelle avec la suivante. Un décompte rejoint autant de lignes.

9

:f

Affiche la position actuelle dans le fichier en% et le nom du fichier, le nombre total de fichiers.

dix

:f filename

Renomme le fichier actuel en nom de fichier.

11

:w filename

Écrit dans le nom du fichier.

12

:e filename

Ouvre un autre fichier avec un nom de fichier.

13

:cd dirname

Remplace le répertoire de travail actuel par dirname.

14

:e #

Bascule entre deux fichiers ouverts.

15

:n

Si vous ouvrez plusieurs fichiers à l'aide de vi, utilisez :n pour aller au fichier suivant de la série.

16

:p

Si vous ouvrez plusieurs fichiers à l'aide de vi, utilisez :p pour accéder au fichier précédent de la série.

17

:N

Si vous ouvrez plusieurs fichiers à l'aide de vi, utilisez :N pour accéder au fichier précédent de la série.

18

:r file

Lit le fichier et l'insère après la ligne actuelle.

19

:nr file

Lit le fichier et l'insère après la ligne n.

Recherche de mots et de caractères

L'éditeur vi propose deux types de recherches: string et character. Pour une recherche de chaîne, le/ et ?les commandes sont utilisées. Lorsque vous démarrez ces commandes, la commande que vous venez de taper sera affichée sur la dernière ligne de l'écran, où vous tapez la chaîne particulière à rechercher.

Ces deux commandes ne diffèrent que dans le sens où la recherche a lieu -

  • le / La commande recherche vers l'avant (vers le bas) dans le fichier.

  • le ? La commande effectue une recherche en arrière (vers le haut) dans le fichier.

le n et NLes commandes 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 des significations spéciales. Ces caractères doivent être précédés d'une barre oblique inverse (\) à inclure dans l'expression de recherche.

Sr.No. Caractère et description
1

^

Recherche au début de la ligne (à utiliser au début d'une expression de recherche).

2

.

Correspond à un seul caractère.

3

*

Correspond à zéro ou plus du caractère précédent.

4

$

Fin de la ligne (à utiliser à la fin de l'expression de recherche).

5

[

Démarre 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.

sept

>

Cela aide à voir le '<'description du caractère ci-dessus.

La recherche de caractères recherche dans une ligne pour trouver un caractère entré après la commande. lef et F Les commandes recherchent un caractère sur la ligne courante uniquement. f recherche vers l'avant et F recherche en arrière et le curseur se déplace à la position du caractère trouvé.

le t et T Les commandes recherchent un caractère sur la ligne courante uniquement, mais 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.

Définir les commandes

Vous pouvez modifier l'apparence de votre écran vi en utilisant les éléments suivants :setcommandes. Une fois que vous êtes en mode commande, tapez:set suivi de l'une des commandes suivantes.

Sr.No. Commande et description
1

:set ic

Ignore la casse lors de la recherche

2

:set ai

Définit l'autoindent

3

:set noai

Annule l'auto-identification

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 arrêt de tabulation logiciel. Par exemple, vous définiriez une largeur de décalage 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 rechercher au début

sept

:set wm

Si cette option a une valeur supérieure à zéro, l'éditeur va automatiquement "word wrap". Par exemple, pour définir la marge d'habillage à deux caractères, vous devez taper ceci::set wm = 2

8

:set ro

Modifie le type de fichier en "lecture seule"

9

:set term

Imprime le type de terminal

dix

:set bf

Supprime les caractères de contrôle de l'entrée

Commandes en cours d'exécution

Le vi a la capacité d'exécuter des commandes à partir de l'éditeur. Pour exécuter une commande, il vous suffit d'accéder au mode commande et de taper:! commander.

Par exemple, si vous souhaitez 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 sur l'écran.

Vous pouvez appuyer sur n'importe quelle touche (ou sur la séquence d'échappement de la commande) pour revenir à votre session vi.

Remplacement 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 le texte -

:s/search/replace/g

le gsignifie 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 contribueront à votre succès avec vi -

  • Vous devez être en mode commande pour utiliser les commandes. (Appuyez deux fois sur Echap à tout moment pour vous assurer que vous êtes en mode commande.)

  • Vous devez être prudent avec les commandes. Ceux-ci sont sensibles à la casse.

  • Vous devez être en mode insertion pour saisir du texte.