Déplacements

Les touches fléchées marchent dans les versions actuelles de vi
  • g Début du fichier
  • G Fin du fichier
  • 0(zéro) Début de ligne
  • ^ Début de ligne, 1er caractère non blanc
  • $ Fin de ligne
  • :15 Va sur la ligne 15
Changement de mode
  • ESC Passer en mode commande

  • i Passer en mode insertion à la position actuelle du curseur
  • a Passer en mode insertion à la position du curseur + 1 caractère
  • A Passer en mode insertion à la fin de la ligne
  • o Passer en mode insertion à la ligne suivante
  • O Passer en mode insertion à la ligne actuelle

  • r Passer en mode remplacement pour 1 caractère
  • R Passer en mode remplacement
  • q Quitter
  • :w Enregistrer
  • :r toto Ajouter le fichier toto à la position actuelle du curseur

  • u Undo
Couper, Copier, Coller, Supprimer
  • dd Couper une ligne
  • 5dd Couper 5 lignes

  • yy Copier une ligne
  • 5yy Copier 5 lignes

  • dw Couper un mot (jusqu'au blanc suivant)
  • yw Copier un mot (jusqu'au blanc suivant)

  • d$ Couper de la position actuelle du curseur à la fin de la ligne
  • y$ Copier de la position actuelle du curseur à la fin de la ligne

  • d0 Couper de la position actuelle du curseur au début de la ligne
  • y0 Copier de la position actuelle du curseur au début de la ligne

  • d/toto Couper depuis la position actuelle du curseur jusqu'au mot toto
  • y/toto Couper depuis la position actuelle du curseur jusqu'au mot toto

  • x Supprimer le caractère sous le curseur
  • 5x Supprimer le caractère sous le curseur et les 4 suivants

  • p Coller
Chercher, Remplacer
  • /toto Rechercher la chaine toto en avant
  • ?toto Rechercher la chaine toto en arrière
  • n Rechercher le suivant
  • N Rechercher le précédent
  • / Répéter la dernière recherche en avant
  • ? Répéter la dernière recherche en arrière

  • :s/un/deux/g Remplace toutes les occurences de "un" par "deux" dans tout le fichier
  • :1,10s/un/deux/g Remplace toutes les occurences de "un" par "deux" entre les lignes 1 et 10
Exécuter une commande shell
  • :!commande
Travail avec plusieurs fichiers

Ouvrir plusieurs fichiers
  • vi fic1 fic2 fic3

  • :n Passer au fichier suivant
  • :N Passer au fichier précédant
Ouvrir un 2eme fichier dans la même fenêtre
  • :split fic2 partage la fenêtre horizontalement
  • :vsplit fic2 verticalement
  • ctrl-ww Change de fenêtre
Bien entendu on peut copier, couper, coller d'une fenêtre à l'autre

Il y a encore de nombreuses possibilités par exemple :
Taper date sur une ligne. Passer en mode commande. Taper !!sh return, et admirer ...

Encore plus simple :
!!commande shell

Pour le reste :

Vim Tuto