Liste des commandes VI

Lorsqu’une commande nécessite un argument, en général un numéro de ligne ou une commande de déplacement (h, j, k, l, w, b…), je place … à l’endroit où cet argument s’insère.

  • [N] où N est un nombre : exécute la commande suivante N fois.
  • : passe en mode ex.
  • ) se déplace sur le premier caractère de la phrase suivante.
  • ( se déplace sur le premier caractère de la phrase précédente.
  • } se déplace au paragraphe suivant.
  • { se déplace au paragraphe précédent.
  • ]] se déplace à la section suivante.
  • [[ se déplace à la section précédente.
  • 0 se déplace au début de la ligne.
  • $ se déplace à la fin de la ligne.
  • ^ se place sur le premier caractère de la ligne.
  • + se place sur le premier caractère de la ligne suivante.
  • – se place sur le premier caractère de la ligne précédente.
  • espace va sur le caractère suivant.
  • entrée va sur la ligne suivante.
  • / recherche vers la fin du fichier.
  • ? recherche vers le début du fichier.
  • % se place sur l’autre élément d’une paire de parenthèse, crochet, accolade.
  • , répète la dernière commande f, F, t ou T, mais dans l’autre direction.
  • ; répète la dernière commande f, F, t ou T.
  • . répète la dernière commande.
  • `lettre se place sur la marque <lettre> préalablement positionnée.
  • ‘ se place au début d’une ligne comportant une marque.
  • «  retourne à la marque précédente, ou à la position où l’on était avant une recherche.
  •  » idem, mais se place au début de la ligne.
  • ~ passe un caractère minuscule en majuscule, et vice versa.
  •  » place dans un tampon.
  • @ exécute la commande dans un tampon.
  • ! exécute la commande sur ce qui suit, et affiche le résultat.
  • !! exécute la commande sur la ligne qui suit, et affiche le résultat.
  • >> déplace la ligne d’une tabulation vers la droite.
  • << idem, vers la gauche.
  • >% déplace d’une tabulation vers la droite le contenu d’un (), d’un {} ou d’un [], lorsque le curseur est placé sur un des éléments.
  • <% idem, vers la gauche.
  • a ajoute du texte après la position du curseur.
  • A ajoute du texte à la fin de la ligne.
  • ^a inutilisé.
  • b se place au début du mot précédent.
  • B idem, sans tenir compte de la ponctuation.
  • ^b remonte d’un écran.
  • c change jusqu’à …
  • C change jusqu’à la fin de la ligne.
  • ^c quitte le mode saisie, inutilisé en mode commande.
  • d efface jusqu’à …
  • D efface jusqu’à la fin de la ligne.
  • ^d descend d’un demi-écran en mode commande, va à la tabulation précédente en mode saisie.
  • e se rend à la fin du mot.
  • E idem, sans tenir compte de la ponctuation.
  • ^e descend l’écran d’une ligne.
  • f… se rend sur la lettre …
  • F idem, vers le début de la ligne.
  • ^f descend d’un écran.
  • g inutilisé
  • …G se rend à la ligne … ou à la fin du fichier si rien n’est précisé.
  • ^g affiche un indicateur de position.
  • h se déplace vers la gauche.
  • H se rend sur la première ligne à l’écran.
  • ^h retour arrière en mode saisie, va vers la gauche en mode commande.
  • i insère du texte à l’endroit du curseur.
  • I insère du texte devant le premier caractère (sauf espace) de la ligne.
  • ^i tabulation en mode saisie, inutilisé en mode commande.
  • j se déplace vers le bas.
  • J rattache la ligne suivante à la fin de la ligne courante.
  • ^j se déplace vers le bas en mode commande, insère une ligne en mode
  • saisie.
  • k se déplace vers le haut.
  • K inutilisé.
  • ^k inutilisé.
  • l se déplace vers la droite.
  • L se rend à la dernière ligne de l’écran.
  • ^l reactualise l’écran.
  • m marque la position dans un tampon.
  • M se rend au milieu de l’écran.
  • ^m retour chariot.
  • n répète la recherche précédente.
  • N idem, dans la direction opposée.
  • ^n se déplace vers le bas, en mode commande.
  • o crée une nouvelle ligne sous l’actuelle, et entre en mode saisie.
  • O idem, mais avec une ligne au-dessus de la ligne actuelle.
  • ^o inutilisé.
  • p insère sous le curseur.
  • P insère devant le curseur.
  • ^p va vers le haut, en mode commande
  • q inutilisé.
  • Q quitte, et lance ex.
  • ^q inutilisé.
  • r… remplace le caractère sous le curseur par le caractère …
  • R remplace jusqu’à ce que l’on quitte le mode saisie.
  • s substitue un caractère.
  • S substitue sur toute la ligne.
  • ^s inutilisé.
  • t… se rend avant la prochaine lettre …
  • T idem, vers le début de la ligne.
  • ^t se déplace vers la prochaine tabulation.
  • u annule le dernier changement.
  • U idem, mais uniquement pour la ligne du curseur.
  • ^u inutilisé.
  • v inutilisé.
  • V inutilisé.
  • ^v inutilisé en mode commande, empêche l’interprétation du caractère
  • suivant en mode saisie.
  • w se place au début du mot suivant.
  • W idem, sans tenir compte de la ponctuation.
  • ^w inutilisé en mode commande, se rend au début du mot précédent en
  • mode saisie.
  • x efface le caractère sous le curseur.
  • X efface le caractère précédent.
  • ^x inutilisé.
  • y… copie dans le tampon.
  • Y copie dans le tampon la ligne du curseur.
  • ^y remonte l’écran d’une ligne.
  • z recadre l’écran sur la ligne du curseur.
  • ZZ sauvegarde les changements s’il y a lieu, et quitte.
  • ^z inutilisé.

8.1 Quelques commandes :

  • :r fichier insère le contenu du fichier dans le texte.
  • :r !commande insère le résultat de la commande dans le texte.
  • :Nr fichier comme :r, mais insère à la ligne N.
  • :!commande exécute la commande, et affiche le résultat.
  • :sh démarre un shell.
  • :so fichier lis et exécute les commandes contenues dans le fichier.
  • 😡 sauvegarde s’il y a eu des changements, et quitte.
  • :wq sauvegarde, et quitte.
  • :m,nw fichier sauvegarde dans le fichier l’intervalle compris entre la ligne m et la ligne n.
  • :w >> fichier ajoute le texte à la fin du fichier indiqué.
  • :w! force la sauvegarde du document en train d’être édité.
  • :q quitte.
  • :q! quitte sans sauvegarder, même s’il y a eu des modifications.
  • :e fichier édite le fichier, sans quitter vi.
  • :e! annule les changements depuis la dernière sauvegarde.
  • :n édite le fichier suivant.
  • :e +N fichier édite le fichier, en démarrant à la ligne N.
  • :n liste la liste devient la nouvelle liste de fichiers à éditer.
  • :e# passe à un autre fichier, dans une liste de deux.
  • :args indique la liste des fichiers à éditer.
  • :rew retourne au premier fichier de la liste.
  • :map m n crée une macro : m déclenche la suite de commande n
  • :map! m n crée une macro pour le mode saisie.
  • :unmap m supprime la macro m.
  • :unmap! m supprime la macro m, si m est une macro pour le mode saisie.
  • :ab m n abrège n en m : en saisissant m, vi affiche n.
  • :unab m supprime l’abréviation.
  • :cd répertoire change le répertoire courant.
  • :set bidule règle l’option bidule.

8.2 Quelques commandes set.

Les abréviations entre parenthèses peuvent être utilisées. La syntaxe est la suivante : :set option paramètre . Il n’y a pas forcément de paramètre à préciser : pour supprimer une option qui n’utilise pas de paramètre, on fait :set no[option] . On peut spécifier plusieurs options sur la même ligne.

:set option? indique si l’option est activée ou non, et son paramètre éventuel. :set all indique cela pour toutes les options d’un coup.

OptionDefautFonction
autoindent (ai)noaiRetourne à la ligne automatiquement.
autoprint (ap)apAffiche les changements après chaque commande.
autowrite (aw)noawSauvegarde automatiquement avant les :n et les :!
beautify (bf)nobfIgnore les caractères de contrôle lors de la saisie, sauf les tabulations et les retours à la ligne.
directory= (dir=)/tmpIndique le répertoire où stocker les tampons.
edcompatiblenoedcompatibleAdopte une syntaxe proche de celle de ed.
errorbells (eb)errorbellsSonne en cas d’erreur.
exrc (ex)noexrcRecherche des .exrc en dehors du répertoire personnel.
hardtabs= (ht=)8Nombre d’espacements d’une tabulation.
ignore case (ic)noicRecherche des expressions régulières sans tenir compte des majuscules/minuscules.
lispnolispCharge le mode lisp.
listnolistAffiche les tabulations et les retours à la ligne.
magicmagicAccepte des expressions régulières complexes et plus variées.
number (nu)nonumberAffiche les numeros de ligne.
openopenPermet d’utiliser le mode open.
optimize (opt)optimizeN’envoie pas de retours chariots lors de l’impression.
paragraphs= (para=)IPLPPPQPPLIbpSpécifie les délimiteurs de paragraphe { et }.
promptpromptLes commandes du mode ex ont un : en guise d’invite.
readonly (ro)noroRefuse de sauvegarder sauf ordre explicite ( w!)
redrawnoredrawRedessine l’écran quand des changements sont faits.
remapremapPermet des macros récursives.
report=5Si plus de x lignes sont modifiées d’un coup, affiche une ligne faisant le compte de ces changements.
scroll1/2 fenêtreTaille de l’écran à descendre lorsqu’une commande de défilement est utilisée. Celle correspond aussi au nombre de ligne imprimées par z (2 fois la taille de cette variable).
sections=SHNHH HUDéfinit les délimiteurs de sections.
shell= (sh=)/bin/shLe shell utilisé. Égal à $SHELL/
shiftwidth= (sw=)8Espace à indenter lorsqu’on utilise des commandes de tabulation.
showmatch (sm)nosmIndique les {[( ouvrant quand on tape leur )]} fermant.
showmodenoshowmodeAffiche le mode actif.
slowopen (slow)Ne met pas à jour l’affichage tout de suite lors de l’insertion de texte.
tabstop= (ts=)8Distance entre les tabulations.
taglength= (tl=)0Nombre de caractères pris en compte pour les tags (0 = tous les caractères)
tags=tag, /usr/lib/tagsChemin d’accès du fichier de tags.
term=Définit le type de terminal.
tersenoterseAffiche des messages d’erreur plus concis.
timeout (to)timeoutN’interprète que les macros composées entièrement durant la première seconde.
ttytype=Définit le type de terminal.
warnwarnAvertit lorsqu’on veut quitter sans avoir préalablement sauvegardé.
window= (w=)Taille de la fenêtre en mode visuel.
wrapmargin= (wm=)0Fixe la marge à respecter à droite par rapport au bord de la fenêtre.
wrapscan (ws)wsLes recherches se poursuivent automatiquement au début du fichier lorsque la fin est atteinte, et vice versa.
writeany (wa)nowaPermet de sauvegarder tous les fichiers.