Commande vi

Fonction

Permet d'éditer des fichiers en mode plein écran.

Syntaxe

{ vi | vedit } [ -l ] [ -R ] [ -tMarque ] [ -v ] [ -wNuméro] [ -yNuméro ] [ -r [ Fichier ] ] [{ + | -c } { Sous-commande } ] [ Fichier ... ]

Description

La commande vi lance un éditeur plein écran basé sur l'éditeur ex sous-jacent. Il est donc possible d'utiliser les sous-commandes ex dans l'éditeur vi. La commande vedit lance une version de l'éditeur vi destinée aux novices. Dans l'éditeur vedit, l'option report est réglée sur 1 et les options showmode et novice sont activées, ce qui en fait un éditeur ligne à ligne.

Vous démarrez l'éditeur vi en indiquant le nom du ou des fichiers à éditer. Si vous fournissez plusieurs paramètres Fichier sur la ligne de commande, l'éditeur vi vous permet de les éditer dans l'ordre indiqué. Lorsque vous utilisez l'éditeur vi avec un fichier existant, son nom, ainsi que le nombre de lignes et de caractères qu'il contient, s'affichent en bas de l'écran. Si le fichier contient des paramètres nationaux multi-octet, le nombre de caractères doit être interprété comme le nombre d'octets.

L'éditeur vi étant un éditeur plein écran, vous pouvez manipuler le texte écran par écran. vi fait une copie du fichier que vous éditez dans une mémoire tampon d'édition. Le contenu du fichier ne change pas tant que vous ne sauvegardez pas vos modifications. La position du curseur à l'écran indique sa position au sein du fichier, et les sous-commandes affectent le fichier à cette position.

Limites de l'éditeur vi

Les limites maximales de l'éditeur vi sont indiquées ci-dessous. Elles supposent des caractères mono-octets.

Remarque :
L'exécution de l'éditeur vi sur un fichier de plus de 64 Mo est susceptible d'entraîner l'affichage du message d'erreur suivant :
0602-103 file too large to place in /tmp (le fichier est trop voumineux et ne peut être placé dans /tmp)

Modes d'édition vi

L'éditeur vi propose les modes d'édition suivants :

mode commande Lorsque vous démarrez l'éditeur vi, le mode commande est activé. Vous pouvez entrer toute sous-commande, excepté celles qui s'utilisent uniquement en mode saisie. L'éditeur vi passe à nouveau en mode commande au terme de l'exécution des sous-commandes ou d'autres modes. Pour annuler une sous-commande, appuyez sur la touche Echap.
mode saisie Ce mode vous permet d'insérer du texte. Pour basculer en mode saisie, utilisez n'importe laquelle des sous-commandes suivantes : sous-commande a, sous-commande A, sous-commande i, sous-commande I, sous-commande o, sous-commande O, sous-commande cx (x représentant la portée de la sous-commande), sous-commande C, sous-commande s, sous-commande S et sous-commande R. Une fois une de ces sous-commandes entrées, vous pouvez saisir du texte dans la mémoire tampon d'édition. Pour retourner en mode commande normalement, appuyez sur la touche Echap. Pour un arrêt anormal, utilisez la séquence de touches d'interruption (Ctrl-C).
mode dernière ligne Les sous-commandes dotées du préfixe : (deux-points),/ (barre oblique), ? (point d'interrogation), ! (point d'exclamation) ou !! (deux points d'exclamation) lisent des données sur une ligne affichée en bas de l'écran. Lorsque vous entrez le premier caractère, l'éditeur vi place le curseur en bas de l'écran et c'est là que vous entrez les autres caractères de la commande. Appuyez sur la touche Entrée pour exécuter la sous-commande ou sur la séquence de touches d'interruption (Ctrl-C)pour l'annuler. Lorsque vous utilisez le préfixe !!, le curseur ne se déplace qu'une fois les deux points d'exclamation entrés. Lorsque vous utilisez le préfixe : pour passer en mode dernière ligne, l'éditeur vi affecte une signification particulière aux caractères suivants s'ils sont placés avant des commandes définissant des décomptes :
%
Toutes les lignes où que se trouve le curseur
$
Dernière ligne
.
Ligne en cours

Personnalisation de l'éditeur vi

Vous pouvez personnaliser l'éditeur vi :

Définition des options de l'éditeur vi

Les options de l'éditeur vi que vous pouvez modifier par le biais de la commande set sont indiquées ci-après. Par défaut, ces options sont désactivées. Si vous activez l'une d'elles, vous pouvez la désactiver à nouveau en la faisant précéder du libellé no. Pour désactiver l'option vi autowrite, entrez noaw, où no désactive l'option et aw représente l'option autowrite.

Remarque :
N'utilisez pas de parenthèses lorsque vous entrez les options vi.
Option vi (abréviation) Description
autoindent (ai) Fait automatiquement un retrait de texte en mode saisie jusqu'au niveau du retrait de la ligne précédente, en se basant sur l'espacement des taquets de tabulation définis par l'option shiftwidth. Le paramétrage par défaut est noai. Pour déplacer le curseur jusqu'au taquet de tabulation précédent, appuyez sur la séquence de touches Ctrl-D. Cette option n'est pas en vigueur pour les commandes globales.
autoprin (ap) Imprime la ligne en cours après toute commande qui modifie la mémoire tampon d'édition. Le paramétrage par défaut est ap. Cette option s'applique uniquement à la dernière commande d'une séquence de commandes figurant sur une ligne unique et n'est pas en vigueur pour les commandes globales.
autowrite (aw) Ecrit automatiquement la mémoire tampon d'édition dans le fichier avant la sous-commande :n, la sous-commande :ta, les séquences de touches Ctrl-A, Ctrl -] et Ctrl -T et la sous-commande !, si elle a été modifiée depuis la dernière sous-commande write. Le paramétrage par défaut est noaw.
backtags (bt) Permet à la sous-commande Ctrl-T de replacer la position d'édition du fichier à l'emplacement d'émission de la sous-commande Ctrl-] précédente. Si l'option nobacktags est définie, Ctrl-T équivaut à Ctrl-]. Le paramétrage par défaut est backtags.
beautifying text (bf) Interdit l'entrée de caractères de commande dans la mémoire tampon d'édition en mode saisie (à l'exception des indicateurs de tabulation, d'avance ligne et d'alimentation papier). Le paramétrage par défaut est nobf. Cette option s'applique à l'entrée de commandes.
closepunct (cp=) Traite une ligne de signes de ponctuation de fermeture, notamment lors du retour à la ligne automatique de texte (option wraptype). Fait précéder les signes de ponctuation constitués de plusieurs caractères du nombre de caractères, par exemple cp=3..;)}. La commande vi ne sépare pas les signes de ponctuation de fermeture lors du retour à la ligne automatique de texte.
directory (dir=) Affiche le répertoire contenant la mémoire tampon d'édition, dir = /var/tmp, par défaut.
edcompatible (ed) Conserve les suffixes de sous-commande g (global) et c (confirm) pendant les substitutions multiples et force le suffixe r (read) à se comporter comme la sous-commande r. Le paramétrage par défaut est noed.
exrc (exrc) Si elle est désactivée, cette option ignore tout fichier .exrc dans le répertoire en cours pendant l'initialisation, à moins qu'il ne s'agisse du répertoire nommé par la variable d'environnement HOME. Le paramétrage par défaut est noexrc.
hardtabs (ht=) Définit l'espacement des taquets de tabulation matériels sur votre écran de visualisation. (Cette option doit correspondre au paramètre de tabulation du terminal ou de l'émulateur de terminal sous-jacent.) Le paramétrage par défaut est ht=8.
ignorecase (ic) Ne fait pas la distinction entre les majuscules et les minuscules lors de la recherche d'expressions régulières. Le paramétrage par défaut est noic.
linelimit (ll=) Indique le nombre maximal de lignes, tel qu'il est défini par l'option de ligne de commande -y. Cette option n'a d'effet que si elle est utilisée en conjonction avec le fichier .exrc ou la variable d'environnement EXINIT.
lisp (lisp) Désactive la signification particulière des caractères ( ), { }, [ [ et ] ] et active l'opérateur = (impression formatée) dans les s-expressions, afin que vous puissiez modifier les programmes de traitement de liste (LISP). Le paramétrage par défaut est nolisp.
list (list) Affiche le texte avec des tabulations (^I) et des fins de ligne marquées ($). Le paramétrage par défaut est nolist.
magic (magic) Traite les caractères . (point), [ (crochet d'ouverture) et * (astérisque) comme des caractères spéciaux lors de la recherche d'un modèle. Lorsque cette option est désactivée, seuls les caractères ( ) (parenthèses) et $ (dollar) ont une signification spéciale. Vous pouvez toutefois donner une signification particulière à d'autres caractères en les faisant précéder d'une barre oblique (\). Le paramétrage par défaut est magic.
mesg (mesg) Lorsqu'elle activée en mode visuel, cette option active le droit d'accès en écriture sur le terminal. Elle n'a d'effet que si elle est utilisée en conjonction avec le fichier .exrc ou la variable d'environnement EXINIT. Elle est activée par défaut.
modeline (modeline) Exécute une ligne de commande de l'éditeur vi si elle est détectée dans les cinq premières ou cinq dernières lignes du fichier. Une ligne de commande de l'éditeur vi peut se trouver n'importe où sur une ligne. Pour que l'éditeur vi reconnaisse une ligne de commande, elle doit contenir un espace ou une tabulation suivi de la chaîne ex: ou vi:. La fin de la ligne de commande est indiquée par un second signe deux-points (:). L'éditeur vi tente d'interpréter en tant que commandes toutes les données se trouvant entre les deux caractères deux-points. Le paramétrage par défaut est nomodeline.
novice Indique si vous êtes en mode novice. La commande set ne permet pas de modifier la valeur.
number (nu) Fait précéder les lignes du numéro correspondant. Le paramétrage par défaut est nonu.
optimize (opt) Optimise la vitesse de traitement des terminaux qui ne gère pas l'adressage du curseur. Le paramétrage par défaut est noopt.
paragraphs (para=) Définit des noms de macro vi qui débutent des paragraphes. Le paramétrage par défaut est para=IPLPPPQPP\ LIpplpipnpbp. Dans les macros nroff d'une lettre, telles que .P, l'espace doit être placé entre guillemets lors de la redéfinition d'un paragraphe.
partialchar (pc=) S'affiche dans la dernière colonne d'affichage à la place d'un caractère double largeur qui ne serait pas affiché dans son intégralité. Le caractère par défaut est - (signe moins).
prompt Vous invite à entrer une nouvelle commande vi en mode commande par impression d'un signe deux-points(:). Cette option est activée par défaut.
readonly (ro) Affiche le mode lecture seule permanent. Le paramétrage par défaut est noreadonly.
redraw (redraw) Simule un poste de travail intelligent sur un poste de travail non intelligent. Le paramétrage par défaut est nore.
remap Permet de définir des macros à partir d'autres macros. Cette option est activée par défaut.
report (re=) Indique combien de fois vous pouvez répéter une commande avant qu'un message s'affiche. Pour les sous-commandes donnant lieu à de nombreux messages, telles que les commandes globales, les messages s'affichent une fois la séquence de commandes exécutée. Le paramétrage par défaut est report=5.
scroll (scr=) Définit le nombre de lignes qui défilent lorsque l'utilisateur fait défiler l'affichage vers le haut et le bas. Ce nombre correspond par défaut à la moitié de la taille de la fenêtre (arrondie au chiffre inférieur).
sections (sect=) Définit les noms de macros vi qui débutent des sections, sect=NHSHHH\ HUuhsh+c par défaut. Dans les macros nroff d'une lettre, telles que .P, l'espace doit être placé entre guillemets lors de la redéfinition d'un paragraphe.
shell (sh=) Définit le shell pour la sous-commande ! ou :! . Il s'agit du shell de connexion par défaut.
shiftwidth (sw=) Définit l'espacement des taquets de tabulation logiciels utilisés par l'option autoindent, les commandes shift ( > et < ), et les commandes de saisie de texte (les séquences de touches Ctrl-D et Ctrl-T). Cette option vi affecte uniquement la mise en retrait au début d'une ligne. Le paramétrage par défaut est sw=8.
showmatch (sm) Affiche ( ou { (parenthèse ou accolade d'ouverture) lorsque vous tapez ) ou } (parenthèse ou accolade de fermeture), respectivement. Le paramétrage par défaut est nosm.
showmode (smd) Affiche un message pour indiquer que l'éditeur vi passe en mode de saisie. Le paramétrage par défaut est nosmd.
slowopen (slow) Ne met pas à jour l'écran de visualisation pendant les insertions. Le paramétrage par défaut est noslow.
tabstop (ts=) Définit l'espacement des taquets de tabulation dans un fichier affiché. Le paramétrage par défaut est ts=8.
tags (tags =) Définit le chemin de recherche du fichier base de données des noms de fonction créé à l'aide de la commande ctags. Le chemin par défaut correspond à tags=tags\ /usr/lib/tags.
term (term=) Définit le type de poste de travail que vous utilisez. La valeur par défaut correspond à term=$TERM, où $TERM est la valeur de la variable du shell TERM.
terse (terse) Active l'affichage des messages au format court. Le paramétrage par défaut est noterse.
timeout (to) Définit une limite de deux secondes sur une saisie de caractères. Lorsque l'option timeout est activée, les caractères saisis dans une macro sont traités séparément. Pour réactiver l'utilisation de la macro, utilisez l'option notimeout. Le paramétrage par défaut est to.
ttytype Indique le type tty du terminal utilisé. Il est impossible de modifier cette valeur dans l'éditeur vi.
warn (warn) Affiche un message d'avertissement avant que la sous-commande ! n'exécute une commande de shell, s'il s'agit de la première fois que vous lancez une telle commande depuis que des modifications effectuées dans la mémoire tampon d'édition n'ont pas été écrites dans un fichier. Le paramétrage par défaut est warn.
window (wi=) Définit le nombre de lignes affichées dans une fenêtre de texte. La valeur par défaut est fonction du débit en bauds en vigueur : 600 bauds ou moins, 8 lignes ; 1200 bauds, 16 lignes ; débits plus élevés, plein écran moins une ligne.
wrapmargin (wm=) Définit la marge à appliquer lors du retour automatique des mots à la ligne suivante. Le paramétrage par défaut est wm=0. La valeur 0 désactive le retour à la ligne automatique.
wrapscan (ws) Permet la recherche en boucle de chaînes dans la mémoire tampon d'édition. Le paramétrage par défaut est ws.
wraptype (wt=) Indique la méthode utilisée pour renvoyer à la ligne suivante les mots qui se trouvent en fin de ligne. Le paramétrage par défaut est general. Vous pouvez définir une des quatre valeurs suivantes :
general
Permet le retour automatique à la ligne sur les coupures de mots considérées comme un blanc entre deux caractères. Il s'agit du paramètre par défaut.
word
Permet le retour automatique à la ligne des mots.
rigid
Permet le retour automatique à la ligne sur les colonnes et avant les signes de ponctuation de fermeture.
flexible
Permet le retour automatique à la ligne sur les colonnes, mais un caractère de ponctuation peut dépasser de la marge.
writeany (wa) Désactive les vérifications qui sont effectuées automatiquement avant une sous-commande write. Le paramétrage par défaut est nowa.

Pour afficher la liste des paramètres de l'éditeur vi qui ont été personnalisés, entrez set et appuyez sur la barre d'espacement. Appuyez sur la touche Entrée pour retourner en mode commande.

Pour afficher la liste complète des paramètres de l'éditeur vi, entrez set all. Appuyez sur la touche Entrée pour retourner en mode commande.

Pour activer une option de l'éditeur vi, entrez set Option. Cette commande rétablit automatiquement le mode commande.

Pour activer plusieurs options de l'éditeur vi, entrez set Option Option Option. Cette commande active les trois options indiquées et rétablit le mode commande.

Pour désactiver une option de l'éditeur vi, entrez set noOption. Cette commande rétablit automatiquement le mode commande.

Pour modifier la valeur d'une option de l'éditeur vi, entrez set Option=Valeur. Cette commande rétablit automatiquement le mode commande.

Vous pouvez utiliser la sous-commande :set de l'éditeur vi pour définir des options pour la session d'édition en cours uniquement ou pour celle-ci et toutes les sessions futures.

Pour définir ou modifier les options de l'éditeur vi pour la session en cours uniquement, entrez la sous-commande :set sur la ligne de commande.

Pour définir les options vi pour toutes les sessions d'édition, intégrez la sous-commande :set à la variable d'environnement EXINIT dans le fichier .profile (qui est lu par le shell à la connexion) ou insérez la sous-commande set dans un fichier .exrc. L'éditeur vi recherche d'abord la variable d'environnement EXINIT et exécute les commandes qu'elle contient. Si cette variable n'existe pas, l'éditeur vi recherche le fichier $HOME/.exrc et exécute les commandes qu'il contient. Pour finir, et quels que soient les résultats des recherches précédentes, l'éditeur vi recherche le fichier .exrc local et exécute les commandes qu'il contient.

Remarque :
Ce processus ne s'applique pas à la commande tvi (trusted vi). Dans ce cas, l'éditeur vi recherche et exécute uniquement le fichier /etc/.exrc.

Pour plus d'informations sur la modification d'une option par définition de la variable d'environnement EXINIT, consultez la description des variables d'environnement dans le fichier environment.

Le fichier .exrc contient des sous-commandes au format set Option=Valeur. Exemple :

set cp=3 . . ;

Pour inclure un commentaire dans le fichier .exrc, entrez le caractère " (guillemets) en première position sur la ligne.

Définition de macros

Si vous vous servez fréquemment d'une sous-commande ou d'une séquence de sous-commandes, vous pouvez utiliser l'éditeur vi pour définir une macro qui exécute la sous-commande ou la séquence.

Pour définir une macro, entrez la séquence de sous-commandes dans une mémoire tampon dont le nom correspond à une lettre de l'alphabet. Les minuscules (a à z) écrasent le contenu de la mémoire tampon, tandis que les majuscules (A à Z) ajoutent le texte au contenu existant de la mémoire tampon, ce qui vous permet de construire la macro graduellement.

Ainsi, pour créer une macro, intitulée c, qui recherche le mot coin et active la troisième ligne suivant ce mot, entrez la commande suivante :

o /coin/+3

Appuyez ensuite sur la touche Echap et entrez la commande suivante :

"c

c correspondant au nom de la macro.

Pour ajouter le texte au contenu existant de la mémoire tampon définie, entrez la sous-commande vi o, appuyez sur la touche Echap et entrez "Majuscule, où la variable Majuscule représente une lettre majuscule (A à Z). Pour créer une macro, intitulée T, qui recherche le mot coin et vous permet d'ajouter d'autres commandes, entrez la commande suivante :

o coin

Appuyez ensuite sur la touche Echap et entrez la commande suivante :

"T

T correspondant au nom de la macro. Vous pouvez répéter ce processus à tout moment pour ajouter d'autres sous-commandes vi à une même mémoire tampon.

Ainsi, pour ajouter des commandes qui placent le curseur sur la ligne précédente et la supprime, entrez la commande suivante :

o -dd

où - (signe moins) représente le déplacement du curseur d'une ligne vers le haut et dd correspond à la suppression de la ligne en cours. Appuyez ensuite sur la touche Echap et entrez la commande suivante :

"Tdd

Pour exécuter la macro, entrez @Lettre, où la variable Lettre représente la lettre qui constitue le nom de la macro de mémoire tampon que vous voulez utiliser. Pour réutiliser une même macro, entrez @@ (deux symboles arrobas). Entrez @T, par exemple, pour exécuter la macro T et exécuter les commandes rechercher, déplacer le curseur et supprimer la ligne. Entrez @@T à nouveau pour réexécuter la macro T.

Le jeu de caractères utilisé par votre système est défini par la table d'interclassement. Celle-ci affecte les performances des macros vi.

Mappage de touches

Vous pouvez utiliser les sous-commandes :map, :map! et :ab pour mapper une touche sur une commande ou une séquence de commandes. La sous-commande :map s'utilise en mode commande. Les sous-commandes :map! et :ab s'utilisent en mode saisie. Vous pouvez mapper des touches pour la session d'édition en cours seulement ou pour celle-ci et toutes les sessions futures dans les deux modes.

Pour mapper des touches pour toutes les sessions d'édition futures, insérez la sous-commande dans un fichier $HOME/.exrc. L'éditeur vi lit ce fichier à chaque démarrage. Le mappage reste en vigueur pour chaque session d'édition.

Pour mapper des touches pour la session d'édition en cours uniquement en mode commande, exécutez la sous-commande pendant la session. Pour mapper des touches pour la session d'édition en cours uniquement en mode saisie, entrez la sous-commande sur la ligne de commande pendant la session. Le mappage reste en vigueur pour la session d'édition en cours seulement.

Avertissement : Si vous utilisez un terminal ASCII 3161 IBM, 3163 IBM ou 3101 IBM, le mappage de touches par défaut de l'éditeur vi est susceptible d'entraîner une perte de données. Pour afficher le mappage par défaut, exécutez une sous-commande :map. Les séquences de touches Echap-J et Maj-J donnent lieu à des problèmes spécifiques, car elles suppriment toutes les informations de l'emplacement en cours du curseur jusqu'à la fin du fichier. Pour parer à tout problème, modifiez ces séquences de touches par le biais d'un fichier .exrc.

Les sous-commandes :map, :map! et :ab sont définies et utilisées comme suit :

:map Définit des macros en mode commande. La sous-commande :map vous permet d'exécuter une commande ou une séquence de commandes dans l'éditeur vi en appuyant sur une touche unique.

Pour mapper des touches en mode commande, démarrez l'éditeur vi avec une mémoire tampon d'édition vide. Ne nommez pas de fichier vi à l'aide de la commande vi et ne tapez rien dans la mémoire tampon une fois que l'éditeur a démarré. Vous pouvez utiliser la sous-commande :map pour effectuer les opérations suivantes.

  • Pour mapper un caractère sur une séquence de commandes d'édition, entrez :

    :map Lettre Sous-commandevi
  • Pour supprimer le mappage d'un caractère mappé précédemment en mode commande, entrez :

    :unmap Lettre
  • Pour afficher la liste des mappages en cours disponibles en mode commande, entrez :

    :map

Les touches suivantes ne sont pas utilisées par l'éditeur vi et peuvent donc être utilisées en conjonction avec la sous-commande :map en mode commande :

  • lettres g, K, q, V et v,
  • séquences de touches de contrôle Ctrl-A, Ctrl-K, Ctrl-O, Ctrl-W et Ctrl-X,
  • trait de soulignement (_), astérisque (*), barre oblique inversée (\) et signe égal (=).

Vous pouvez mapper une touche qui est déjà utilisée dans l'éditeur vi, mais la fonction usuelle de le touche ne sera pas disponible tant que le mappage est en vigueur. Certains terminaux vous permettent de mapper des séquences de commandes sur des touches de fonction. En mode LISP, il est impossible d'utiliser le signe égal (=) car il est utilisé par l'éditeur vi.

Pour mapper la lettre v sur la séquence de commandes qui recherche l'occurrence suivante du mot map et la remplace par MAP, entrez la commande suivante :

:map v /map<Ctrl-V><Enter>cwMAP<Ctrl-V><Esc><Ctrl-V><Enter>

L'exemple suivant commande à l'éditeur vi de rechercher l'occurrence suivante de map (/map<Ctrl-V><Enter>), de remplacer map par MAP (cwMAP), de mettre fin à la sous-commande change-word (<Ctrl-V><Esc>) et d'entrer la commande (<Ctrl-V><Enter>).

Remarque :
Pour empêcher l'éditeur vi d'interpréter la touche Entrée (Enter), elle doit être précédée de la séquence de touches Ctrl-V lors du mappage. Cette condition s'applique aux touches Echap (Esc), Espacement arrière (Backspace) et Supprimer (Delete).

Pour mapper les caractères de commande Ctrl-A, Ctrl-K et Ctrl-O, appuyez simultanément sur la touche Ctrl et sur la lettre. Ainsi, pour mapper la séquence de touches Ctrl-A sur la séquence de commandes qui sauvegarde un fichier et ouvre le suivant d'une série, entrez la commande suivante :

:map <Ctrl-A> :w<Ctrl-V><Enter>:n<Ctrl-V><Enter>

Pour mapper les caractères de commande Ctrl-T, Ctrl-W, et Ctrl-X, vous devez les faire précéder de la séquence de touches Ctrl-V.

 

Pour mapper la barre verticale (|), vous devez d'abord la faire précéder de deux séquences de touches Ctrl-V, comme illustré dans l'exemple suivant. Celui-ci mappe le caractère g sur la séquence de commandes qui permet de passer dans le shell, concatène le fichier /etc/motd et dirige le résultat vers la commande wc :

:map g :!cat /etc/motd <Ctrl-V><Ctrl-V>| wc<Ctrl-V><Enter>

Si votre terminal vous permet de mapper des touches de fonction, vous devez les référencer au moyen de la séquence de touches #numéro pour spécifier le numéro de la touche de fonction à mapper. L'exemple suivant mappe la touche de fonction F1 sur la séquence de commandes qui supprime un mot et déplace le curseur de trois mots vers le bas :

:map #1 dwwww

Pour que le mappage des touches de fonction soit possible, la sortie de la touche de fonction sur votre type de terminal doit correspondre à la sortie définie dans le fichier terminfo. Ces définitions sont caractérisées par des entrées kfnuméro, où kf1 représente la touche de fonction F1, kf2, la touche de fonction F2, etc. Si la sortie obtenue lorsque vous appuyez sur la touche de fonction ne correspond pas à cette entrée, utilisez le mode de configuration du terminal pour faire correspondre ces paramètres aux entrées de la base de données des terminaux afin de pouvoir définir des mappages.

Vous pouvez aussi mapper certaines touches spéciales du clavier, telles que Origine, Fin, Page précédente et Page suivante. Sur la plupart des terminaux, ces touches sont déjà mappées dans l'éditeur vi. Vous pouvez vérifier ce mappage à l'aide de la sous-commande :map. Si ces touches ne sont pas déjà mappées, vous pouvez utiliser la sous-commande :map comme suit :

:map <Ctrl-V><End> G
:map <Ctrl-V><Home> 1G
:map <Ctrl-V><PageUp> <Ctrl-F>
:map <Ctrl-V><PageDown> <Ctrl-B>

Pour obtenir la liste de tous les mappages en cours en mode commande, entrez la sous-commande :map. Les exemples précédents sont alors affichés comme suit :

v         v          /map<Ctrl-M>cwMAP<Ctrl-[>Ctrl-M>
<Ctrl-A>  <Ctrl-A>   :w<Ctrl-M>:n<Ctrl-M>
g         g          :!cat /etc/motd | wc <Ctrl-M>

Remarque :
La séquence de touches Ctrl-V et Entrée est représentée par la séquence de touches Ctrl-M et la séquence de touches Ctrl-V et Echap, par la séquence de touches Ctrl-[.
:map! Mappe des chaînes de caractères sur des touches uniques en mode saisie. Pour mapper des touches en mode saisie, démarrez l'éditeur vi avec une mémoire tampon d'édition vide. Ne nommez pas de fichier vi à l'aide de la commande vi et ne tapez rien dans la mémoire tampon une fois que l'éditeur a démarré. Vous pouvez utiliser la sous-commande :map! pour effectuer les opérations suivantes :
  • Pour mapper une lettre sur une ou plusieurs chaînes vi en mode saisie, entrez :

    :map! Lettre Chaîne
  • Pour supprimer le mappage d'une lettre sur une ou plusieurs chaînes en mode saisie, entrez :

    :unmap! Lettre
  • Pour afficher la liste des chaînes qui sont mappées sur des touches spécifiques en mode saisie, entrez :

    :map!

Taper la touche mappée en mode saisie génère la chaîne définie. La séquence de touches Ctrl-V et Echap vous permet de passer en mode commande, place le curseur au début du mot en cours ( bbw) et lance la sous-commande cw (change-word). Exemple :

:map! % <Ctrl-V><Esc>bbwcw

Si vous vous rendez compte au cours de la frappe que vous avez incorrectement saisi un mot, vous pouvez le corriger en appuyant sur la touche % (pourcentage) et en tapant le mot à nouveau. Vous repassez automatiquement en mode insertion.

Remarque :
Choisissez avec soin les touches à utiliser avec la sous-commande :map! . Une fois mappées, les touches ne permettent plus d'entrer de texte à moins de d'abord exécuter la sous-commande :unmap! .
:ab Mappe une touche ou une séquence de touches sur une chaîne de caractères en vue de l'utiliser en mode saisie. La sous-commande :ab facilite la saisie d'expressions, noms ou titres qui sont répétés plusieurs fois.

L'exemple suivant remplace le mot ville par l'expression Paris 78759 chaque fois qu'elle est tapée en mode saisie et suivie d'un blanc, d'un point ou d'une virgule :

:ab ville Strasbourg, en Alsace

Imaginons que vous tapez la phrase suivante :

J'habite actuellement à ville.

Appuyer sur la touche Tab développe le mot ville comme suit :

J'habite actuellement à Strasbourg, en Alsace.

L'abréviation n'est pas développée au sein d'un mot. Si, par exemple, vous tapez J'habite actuellement àville, le mot àville n'est pas remplacé.

Si la sous-commande :map! est utilisée pour mapper des abréviations en mode insertion, toutes les occurrences de ces abréviations sont développées quel que soit leur emplacement. Si vous avez utilisé la sous-commande :map! de l'exemple précédent (:map! ville Strasbourg, en Alsace), chaque fois que vous tapez le mot ville, quel que soit ce qui précède ou suit, il est remplacé par Strasbourg, en Alsace. Le mot àville devient donc àStrasbourg, en Alsace.

Remarque :
Choisissez avec soin les touches qui seront utilisées avec la sous-commande :ab. Une fois mappées, elles ne permettent plus d'entrer de texte à moins de d'abord exécuter la sous-commande :unab
Définition d'abréviations

La commande set se comporte de manière comparable à la commande map!, mais elle ne remplace l'abréviation par la chaîne que si l'abréviation est un mot distinct. Vous pouvez utiliser la commande set de l'éditeur vi pour :

Options

-cSous-commande Exécute la sous-commande de l'éditeur ex avant l'affichage dans vi. Le curseur se place sur la ligne affectée par la dernière sous-commande à exécuter. Lorsque vous entrez un opérande nul ( -c' ', par exemple), l'éditeur vi place le curseur sur la première ligne du fichier. L'option -c n'est pas compatible avec l'option +. N'utilisez pas ces deux options conjointement.
-l Active le mode LISP de l'éditeur vi. Dans ce mode, l'éditeur crée des retraits adaptés au code LISP. Les sous-commandes (, ), {, }, [[ et ]] sont modifiées en conséquence.
-r[Fichier] Restaure un fichier après un incident système ou dans l'éditeur vi. Si vous ne spécifiez pas la variable Fichier, l'éditeur vi affiche la liste de tous les fichiers sauvegardés.
-R Active l'option lecture seulement pour protéger le fichier contre l'écriture.
-tMarque Edite le fichier contenant la variable Marque et place le curseur au niveau de la définition de la marque. Pour utiliser cette option, vous devez d'abord créer une base de données de noms de fonction et de leur emplacement au moyen de la commande ctags.
-v Active le mode prolixe de l'éditeur vi.
-wNombre Règle la taille par défaut de la fenêtre sur la valeur spécifiée par la variable Nombre. Cette option est utile lorsque vous utilisez l'éditeur vi sur une connexion lente.
-yNombre Remplace le nombre maximal de lignes (1 048 560) par toute valeur supérieure à 1024. Spécifiez deux fois le nombre de lignes dont vous avez besoin car l'éditeur vi réserve les lignes supplémentaires à la manipulation de la mémoire tampon.
+[Sous-commande] Exécute la sous-commande de l'éditeur ex avant l'édition. Si vous omettez la variable Sous-commande, le curseur se place sur la première ligne du fichier. L'option + n'est pas compatible avec l'option -c. N'utilisez pas ces deux options conjointement.

Syntaxe générale des sous-commandes vi

Pour entrer des sous-commandes, utilisez la syntaxe générale suivante :

[MémoireTampon_Nommée] [Opérateur] [Nombre] Objet

Remarque :
Les crochets indiquent les éléments facultatifs.
[MémoireTampon_Nommée] Représente une zone de stockage de texte temporaire.
[Opérateur] Indique la sous-commande ou action, donne des instructions à l'éditeur vi.
[Nombre] Nombre entier indiquant la portée de l'action ou une adresse de ligne.
Objet Représente l'élément qui fait l'objet de l'action, tel qu'un objet texte (un caractère, un mot, une phrase, un paragraphe, une section, une chaîne de caractères) ou la position d'un texte (une ligne, une position sur la ligne en cours, une position à l'écran).

Insertion de nombres avant les sous-commandes

Vous pouvez insérer un nombre avant de nombreuses sous-commandes. L'éditeur vi interprète ce nombre comme suit, selon le cas :

Sous-commandes de l'éditeur vi

Les sous-commandes permettent d'exécuter les types d'opération suivants :

Déplacement du curseur

Utilisez des sous-commandes pour déplacer le curseur comme suit dans un fichier :

Déplacement au sein d'une ligne

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Flèche gauche ou h ou Ctrl-H Déplace le curseur d'un caractère vers la gauche.
Flèche bas ou j ou Ctrl-J ou Ctrl-N Déplace le curseur d'une ligne vers le bas (dans la même colonne).
Flèche haut ou k ou Ctrl-P Déplace le curseur d'une ligne vers le haut (dans la même colonne).
Flèche droite ou l Déplace le curseur d'un caractère vers la droite.
Déplacement au sein d'une ligne par position de caractère

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

^ Place le curseur sur le premier caractère autre qu'un blanc.
0 Place le curseur en début de ligne.
$ Place le curseur en fin de ligne.
fx Place le curseur sur le caractère x suivant.
Fx Place le curseur sur le dernier caractère x.
tx Place le curseur dans la colonne précédant le caractère x suivant.
Tx Place le curseur dans la colonne suivant le dernier caractère x.
; Répète la dernière sous-commande f, F, t ou T.
, Répète la dernière sous-commande f, F, t ou T dans la direction opposée.
Nombre| Place le curseur dans la colonne indiquée.
Déplacement sur des mots

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi voir "Syntaxe générale des sous-commandes vi".

w Place le curseur sur le mot court suivant.
b Place le curseur sur le mot court précédent.
e Place le curseur à la fin du mot court suivant.
W Place le curseur sur le mot long suivant.
B Place le curseur sur le mot long précédent.
E Place le curseur à la fin du mot long suivant.
Déplacement par position de ligne

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi voir "Syntaxe générale des sous-commandes vi".

H Place le curseur sur la première ligne de l'écran.
L Place le curseur sur la dernière ligne de l'écran.
M Place le curseur sur la ligne centrale de l'écran.
+ Place le curseur sur la ligne suivante, au premier caractère autre qu'un blanc.
- Place le curseur sur la ligne précédente, au premier caractère autre qu'un blanc.
Enter Place le curseur sur la ligne suivante, au premier caractère autre qu'un blanc.
Déplacement sur des phrases, des paragraphes ou des sections

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

( Place le curseur au début de la phrase précédente ou, en mode LISP, de la s-expression précédente.
) Place le curseur au début de la phrase suivante ou, en mode LISP, de la s-expression suivante.
{ Place le curseur au début du paragraphe précédent ou, en mode LISP, à la liste suivante.
} Place le curseur au début du paragraphe suivant, en mode C, à la section suivante et en mode LISP, à la liste suivante.
]] Place le curseur à la section suivante ou, en mode LISP, à la fonction suivante.
[[ Place le curseur à la section précédente ou, en mode LISP, à la fonction précédente.
Déplacement par régénération de l'écran

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

z Régénère l'affichage et place la ligne en cours en haut de l'écran.
z- Régénère l'affichage et place la ligne en cours en bas de l'écran.
z. Régénère l'affichage et place la ligne en cours au centre de l'écran.
/Modèle/z- Régénère l'affichage et place la ligne contenant la chaîne de caractères représentée par le paramètre Modèle en bas de l'écran.
Défilement de l'affichage

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Ctrl-U Fait défiler l'affichage d'un demi-écran vers le haut.
Ctrl-D Fait défiler l'affichage d'un demi-écran vers le bas.
Ctrl-F Fait défiler l'affichage d'un écran vers le bas.
Ctrl-B Fait défiler l'affichage d'un écran vers le haut.
Ctrl-E Fait défiler la fenêtre d'une ligne vers le bas.
Ctrl-Y Fait défiler la fenêtre d'une ligne vers le haut.
z+ Fait défiler l'affichage d'une page vers le haut.
z^ Fait défiler l'affichage d'une page vers le bas.
Recherche de modèles

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

[Numéro]G Place le curseur au numéro de ligne défini par le paramètre Numéro ou sur la dernière ligne si ce paramètre est omis.
/Modèle Place le curseur sur la première ligne vers le bas contenant la chaîne de caractères définie par le paramètre Modèle.
?Modèle Place le curseur sur la première ligne vers le haut contenant la chaîne de caractères définie par le paramètre Modèle.
n Répète la dernière recherche du texte défini par le paramètre Modèle dans la même direction.
N Répète la dernière recherche du texte défini par le paramètre Modèle dans la direction opposée.
/Modèle/+Nombre Déplace le curseur du nombre indiqué de lignes après la ligne contenant la chaîne de caractères représentée par le paramètre Modèle.
?Modèle?-Nombre Déplace le curseur du nombre indiqué de lignes avant la ligne contenant la chaîne de caractères représentée par le paramètre Modèle.
% Recherche la parenthèse ou l'accolade qui correspond à celle se trouvant à l'emplacement en cours du curseur.

Edition de texte

Les sous-commandes d'édition vous permettent d'exécuter les tâches suivantes :

Marquage d'un emplacement spécifique dans un fichier

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

" Place le curseur à l'emplacement précédent de la ligne en cours.
" Place le curseur au début de la ligne contenant l'emplacement précédent de la ligne en cours.
mx Marque la position en cours par la lettre représentée par le paramètre x.
`x Place le curseur sur la marque spécifiée par le paramètre x.
'x Place le curseur au début de la ligne contenant la marque spécifiée par le paramètre x.
Insertion de texte dans un fichier (mode saisie)

Entrez les sous-commandes suivantes en mode commande pour activer le mode saisie. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

aTexte

Insère le texte défini par le paramètre Texte après le curseur. Pour quitter le mode saisie, appuyez sur la touche Echap.

ATexte

Insère le texte défini par le paramètre Texte en fin de ligne. Pour quitter le mode saisie, appuyez sur la touche Echap.

iTexte

Insère le texte défini par le paramètre Texte avant le curseur. Pour quitter le mode saisie, appuyez sur la touche Echap.

ITexte

Insère le texte défini par le paramètre Texte avant le premier caractère autre qu'un blanc de la ligne. Pour quitter le mode saisie, appuyez sur la touche Echap.

o

Insère une ligne vierge avant la ligne en cours. Pour quitter le mode saisie, appuyez sur la touche Echap.

O

Insère une ligne vierge au-dessus de la ligne en cours. Pour quitter le mode saisie, appuyez sur la touche Echap.
Modification de texte en mode saisie

Utilisez les sous-commandes suivantes uniquement en mode saisie. Ces commandes n'ont pas la même signification en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Ctrl-D

Revient au repère de mise en retrait automatique précédent.
^ Ctrl-D Met fin à la mise en retrait automatique pour cette ligne uniquement.
0Ctrl-D Place le curseur sur la marge de gauche.
Esc Met fin à l'insertion et réactive le mode commande.
Ctrl-H Efface le dernier caractère.
Ctrl-Q Entre tout caractère si xon est désactivé.
Ctrl-V Entre tout caractère.
Ctrl-W Efface le dernier mot court.
\ Met les caractères d'effacement (ERASE) et de suppression (KILL) entre guillemets.
Ctrl-? Interrompt l'insertion ou la séquence de touches Ctrl-D et y met fin.
Modification de texte en mode commande

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une sous-commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

C

Modifie le reste de la ligne (identique à c$).

cc

Modifie une ligne.
cw Modifie un mot.
cwTexte Remplace un mot par le texte défini par le paramètre Texte.
D Efface le reste de la ligne (identique à d$).
dd Supprime une ligne.
dw Efface un mot.
J Relie des lignes.
rx Remplace le caractère en cours par le caractère défini par le paramètre x.

RTexte

Ecrase des caractères par le texte défini par le paramètre Texte.

s

Remplace des caractères (identique à cl).

S

Remplace des lignes (identique à cc).
u Annule la modification précédente.
x Supprime un caractère à l'emplacement du curseur.
X Supprime le caractère qui précède le curseur (identique à dh).
<< Déplace une ligne vers la gauche.
<L Déplace toutes les lignes de l'emplacement du curseur jusqu'au bord gauche de l'écran.
>> Déplace une ligne vers la droite.
>L Déplace toutes les lignes de l'emplacement du curseur jusqu'au bord droit de l'écran.
~ Change la casse de la lettre (majuscule en minuscule, et inversement).
! Crée des retraits pour le code LISP.
Copie et déplacement de texte

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une sous-commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

p Réinsère après le curseur le texte que contient la mémoire tampon d'annulation.
P Réinsère avant le curseur le texte que contient la mémoire tampon d'annulation.
"xp Réinsère le texte que contient la mémoire tampon x.
"xd Supprime le texte et le place dans la mémoire tampon x.
y Place l'objet qui suit (w pour un mot, par exemple) dans la mémoire tampon d'annulation.
"xy Place l'objet qui suit dans la mémoire tampon x, x représentant n'importe quelle lettre.
Y Place la ligne dans la mémoire tampon d'annulation.
Restauration et répétition de modifications

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une sous-commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

u Annule la dernière modification.

Remarque :
A la suite d'une annulation, le curseur se place sur le premier caractère autre qu'un blanc de la ligne modifiée en cours.
U Restaure la ligne en cours à condition que le curseur ne l'ait pas quittée depuis la dernière modification.
. Répète la dernière modification ou incrémente la commande "np.

Remarques :
  1. Cette sous-commande répète la dernière modification, y compris une annulation. Par conséquent, après une annulation, elle effectue une annulation, plutôt que de répéter la dernière modification.
  2. Cette sous-commande ne doit pas être utilisée avec une macro. Pour répéter une macro, entrez @@ (deux signes arrobas).
"n p Restaure la nème des dernières opérations de suppression d'une ligne complète ou d'un bloc de lignes.

Manipulation de fichiers

Les sous-commandes de manipulation des fichiers vous permettent d'exécuter les tâches suivantes :

Sauvegarde de modifications dans un fichier

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi voir "Syntaxe générale des sous-commandes vi".

:w Ecrit le contenu de la mémoire tampon d'édition dans le fichier d'origine. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:w Fichier Ecrit le contenu de la mémoire tampon d'édition dans le fichier défini par le paramètre Fichier. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:w! Fichier Ecrase le fichier défini par le paramètre Fichier par le contenu de la mémoire tampon d'édition. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
Edition d'un second fichier

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

:e Fichier Edite le fichier indiqué. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:e! Edite à nouveau le fichier en cours et supprime toutes les modifications.
:e + Fichier Edite le fichier indiqué en partant de la fin.
:e + Numéro Fichier Edite le fichier indiqué en partant du numéro de ligne spécifié.
:e # Edite l'autre fichier. Il s'agit généralement du fichier qui était ouvert lorsque vous avez accédé à un autre fichier au moyen de la commande :e. Toutefois, si des modifications étaient en attente dans le fichier en cours lorsque vous avez appelé un nouveau fichier, celui-ci est considéré comme l'autre fichier. Cette sous-commande est identique à la sous-commande Ctrl-A.
:r Fichier Lit le fichier dans la mémoire tampon d'édition en insérant de nouvelles lignes sous la ligne en cours. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:r !Commande Exécute la commande spécifiée et place le résultat dans le fichier, en insérant de nouvelles lignes sous l'emplacement en cours du curseur.
:ta Marque Edite un fichier contenant la marque Marque, en partant de l'emplacement de cette dernière. Pour utiliser cette sous-commande, vous devez d'abord créer une base de données de noms de fonction et de leur emplacement au moyen de la commande ctags. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
Ctrl-] Edite un fichier contenant la marque associée au mot en cours, en partant de l'emplacement de cette dernière. Pour utiliser cette sous-commande, vous devez d'abord créer une base de données de noms de fonction et de leur emplacement au moyen de la commande ctags. Ctrl-T édite un fichier à la position d'édition définie par l'emplacement d'émission de la sous-commande Ctrl-] précédente. Si plusieurs sous-commandes Ctrl-] ont été émises, vous pouvez les utiliser pour retourner aux emplacements d'édition précédents correspondants.
Ctrl-A Edite l'autre fichier. Il s'agit généralement du fichier en cours précédent. Toutefois, si des modifications étaient en attente dans le fichier en cours lorsque vous avez appelé un nouveau fichier, celui-ci est considéré comme l'autre fichier. Cette sous-commande est identique à la sous-commande :e #.
Edition d'une liste de fichiers

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

:n Edite le fichier suivant de la liste entrée sur la ligne de commande. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:n Fichiers Permet de spécifier une nouvelle liste de fichiers à éditer. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
Recherche d'informations sur un fichier

Entrez la sous-commande suivante en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Ctrl-G Affiche le nom de fichier en cours, le numéro de la ligne en cours, le nombre de lignes que contient le fichier et l'emplacement en cours du curseur sous forme de pourcentage parcouru dans le fichier.

Autres actions

L'éditeur vi propose également les sous-commandes décrites dans les sections ci-après :

Réglage de l'écran

Entrez les sous-commandes suivantes en mode commande. Vous pouvez annuler une sous-commande incomplète en appuyant sur la touche Echap. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Ctrl-L Efface et réaffiche le contenu de l'écran.
Ctrl-R Actualise l'écran et élimine les lignes vierges marquées d'un arrobas (@).
zNombre Adapte la taille de la fenêtre au nombre de lignes indiqué.
Saisie de commandes Shell

Les sous-commandes suivantes vous permettent d'exécuter une commande à partir de l'éditeur vi. Entrez-les en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

:sh Active le shell pour vous permettre d'exécuter des commandes. Pour retourner dans l'éditeur vi, appuyez sur la séquence de touches Ctrl-D. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:!Commande Exécute la commande indiquée, puis retourne dans l'éditeur vi. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).

Remarque :
Les caractères spéciaux # (autre fichier), % (fichier en cours) et ! (commande précédente) sont développés lorsqu'ils suivent une sous-commande :!. Pour empêcher leur développement, utilisez une barre oblique inversée (\).
:!! Répète la dernière sous-commande :!Commande.
Nombre!!Commande Exécute la commande indiquée et remplace les lignes spécifiées par Nombre par le résultat de la commande. Si vous ne spécifiez pas de nombre, la valeur par défaut, 1, est utilisée. Si la commande requiert des données en entrée, les lignes indiquées sont utilisées à cet effet.
!Objet Commande Exécute la commande indiquée et substitue son résultat à l'objet spécifié par le paramètre Objet. Si la commande requiert des données en entrée, l'objet indiqué est utilisé à cet effet.
Fermeture de l'éditeur vi

Entrez les sous-commandes suivantes en mode commande. Pour plus d'informations sur le format des sous-commandes vi, voir "Syntaxe générale des sous-commandes vi".

Q Ouvre l'éditeur ex en mode commande.
ZZ Ferme l'éditeur vi en sauvegardant les modifications.
:q Quitte l'éditeur vi. Si vous avez modifié le contenu de la mémoire tampon d'édition, un message d'avertissement s'affiche et l'éditeur n'est pas fermé. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
:q! Ferme l'éditeur vi sans sauvegarder le contenu de la mémoire tampon d'édition. Si vous utilisez cette sous-commande dans l'éditeur ex, il est inutile de taper le signe deux-points (:).
Esc Met fin à la saisie de texte ou à une commande incomplète.
Ctrl-? Interrompt une sous-commande.

Etat de sortie

Les valeurs de sortie suivantes sont renvoyées :

0 Exécution réussie.
>0 Une erreur s'est produite.

Fichiers en entrée

Les fichiers en entrée doivent être des fichiers texte ou des fichiers similaires mais dont la dernière ligne, incomplète, ne dépasse pas 8191 octets de long et ne contient pas de caractères nuls.

Les fichiers .exrc doivent être des fichiers texte composés de commandes ex.

Par défaut, l'éditeur vi lit les lignes des fichiers à éditer sans les interpréter en tant que commandes vi.

Rubriques connexes

Commande sed.


Envoyer un commentaire | Evaluer la page