ÉDITEUR VI ou VIM

Ouvrir, enregistrer, enregistrer sous, quitter

Ouvrir un document :

vi nom-du-fichier

Enregistrer

:w!

Enregistrer sous "/tmp/toto.save"

:w /tmp/toto.save

Quitter

:q!

Enregistrer et quitter

:wq!

Une fois votre fichier ouvert, trois types de commandes sont à connaître dans un premier temps :

Rechercher

Commande de recherche de texte avec / :

Tapez ESC puis "/" , le slash apparaît en bas, tapez en suite un texte à rechercher puis presser entrée. Le Curseur va donc rechercher le texte dans le document. Pour continuer la recherche, pressez "n", ou pour remonter dans la recherche, utilisez "SHIFT+N"

Pour rechercher du texte qui ne commence pas par "debut de ligne toto" :

/^[^toto]

Actions

Commandes d'action avec ":" et se déplacer dans le texte

  • Sauvegardez le fichier : Taper ESC puis ":" puis w pour write et/ou q pour quit. Attention la combinaison ":q" ne marche pas, il faut taper ":q!", Le point d'interrogation force la sortie de vi sans la sauvegarde.

( Astuce : si vous tapez : ESC ":" puis w et un nom de fichier, votre texte sera sauvegarde sous ce nouveau nom. )

  • Début de la ligne : Tapez ESC puis "0" ou "^"
  • Fin de la ligne : Tapez ESC puis "$"
  • Début du fichier : Tapez ESC puis SHIT+1+G pour accéder à la première ligne du document
  • Fin du fichier : Tapez ESC puis SHIT+G pour accéder à la dernière ligne du fichier
  • Allez à la ligne x : Tapez ESC puis ":", deux points apparaissent en bas, tapez le numéro x de la ligne. Ou utilisez SHIFT+x+G. Le curseur se déplacera jusqu'à la ligne désirée.

Déplacement dans les parenthèses et accolades ouvrantes et fermantes

  • % Très pratique pour la programmation : si l'on est positionné sur une parenthèse, accolade, crochet, % trouve la parenthèse, accolade, crochet correspondant.
  • ]} pour aller à la prochaine accolade fermante
  • ]) pareil avec des parenthèses
  • ( ) { } ) va jusqu'au bout de la phrase courante, ( jusqu'au début de la phrase. } va jusqu'à la fi n du paragraphe courant, { jusqu'au début.

Modification de texte

Commande de manipulation du texte :

La manipulation du texte comporte énormément de raccourcis clavier. Nous allons voir les primordiaux. Vous pourrez ensuite avec votre expérience en trouver quelques un en plus.

Insérer du texte, il existe différentes manières :

  • Insérer à la position du curseur : ESC i (=insert)
  • Insérer à la position après le curseur : ESC a (=add)
  • Insérer dans une nouvelle ligne : ESC o

( Astuce : si vous voulez rectifier alors que vous êtes en train d'insérer du texte, utilisez la touche Backspace pour reculer le curseur jusqu'à la position désirée et tapez votre texte, celui-ci sera écraser par le nouveau. )

  • Supprimer une ligne : ESC d d (= delete) à la position du curseur : ESC x
  • Annuler la dernière action : ESC u (= undo )
  • Remplacer un caractère: mettez le curseur sur le caractère erroné puis ESC r "nouveau caractère"

Commande de remplacement du texte :

  • :%s/expression régulière/remplacement/g (le % veut dire partout)
  • :3s/^/#/g 5 (remplace a partir de la ligne 3, tous les début de ligne par un # sur 5 lignes)
  • :3,5s/^/#/g (remplace de ligne 3 à la ligne 5, tous les début de ligne par un #)
  • :.,+5s/^/#/g (remplace depuis la position du curseur (.) tous les début de ligne par un # sur 5 lignes)
  • :.,$s/^/#/g (remplace depuis la position du curseur (.) tous les début de ligne par un # jusqu'à la fin du fichier)
  • Remplacer tous les "aaa" par des "bec" : ESC :%s/aaa/bec/g
  • Supprimer tous les retours à la ligne : ESC :%s/\n//g
  • Supprimer toutes les lignes contenant "aeffacer" : ESC :g/aeffacer/d
  • Supprimer toutes les lignes ne contenant pas "aeffacer" : ESC :g!/aeffacer/d

Indentation, espaces et tabulations

Changer le nombre d'espaces d'une tabulation

MANUEL de l'UTILISATEUR VIM - par Bram Moolenaar : Tabulations et espaces & Indentations et tabulations

Comme un <Tab> correspond à huit espaces et que vous souhaitez utiliser une indentation de quatre espaces, vous ne pouvez saisir de <Tab> pour faire votre indentation. Il y a deux façons de traiter cela :

1. Utiliser une combinaison de <Tab> et d'espaces. Un <Tab> occupant la place

  de huit espaces, votre fichier contiendra moins de caractères. L'insertion
  d'un <Tab> est plus rapide que celle de huit espaces. Le retour arrière
  sera également plus rapide ;

2. Utiliser uniquement des espaces. Cela évite l'inconvénient des programmes

  qui utilisent une valeur de 'tabstop' différente.
:set softtabstop=4

Afficher le numéro des lignes

:set nu

Ressources