Commandes de base

Guide de SUR-VI (Utilisation de vi)

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières


Introduction



L’éditeur de texte vi permet d’éditer les fichiers de configuration des différents programmes et fonctionnalités. Il fonctionne en mode texte, son fonctionnement peut paraître déroutant au premier abord…
Voici un petit guide de sur-vi :happy1: qui est loin de présenter toutes les fonctionnalités de vi mais permet néanmoins d’éditer les fichiers dans de bonnes conditions.
Sous vi, il faut distinguer 2 modes : le mode commandes et le mode édition.

Le mode commandes



C’est le mode par défaut lorsque vi s’ouvre. Ce mode ne permet pas de taper du texte. Pour entrer dans le mode commande, appuyer sur la touche Echap.

Le déplacement



  • Aller en début de ligne → 0
  • Aller en fin de ligne → $
  • Ligne précédente (ou monter) → k
  • Ligne suivante (ou descendre) → j
  • Caractère précédent (ou aller à gauche) → h
  • Caractère suivant (ou aller à droite) → l
  • Mot précédent → b
  • Mot suivant → w
  • Page précédente → Ctrl+B (ou Page précédente avec vim)
  • Page suivante → Ctrl+F(ou Page suivante avec vim)
  • Aller à la ligne n → ngg ou nG (où n est le numéro de ligne)
  • Aller à la première ligne : gg
  • Aller à la dernière ligne → G

Quitter / Enregistrer



  • Enregistrer SANS quitter → :w
  • Quitter en enregistrant les modifications → :wq ou:x
  • Quitter sans enregistrer les modifications → :q!

Insertion



  • Activer le mode insertion → i
  • Activer le mode insertion, un caractère après le curseur → a
  • Insérer au début de la ligne → I (i majuscule)
  • Insérer en fin de ligne → A
  • Insérer une ligne au dessus du curseur → O
  • Insérer une ligne en dessous du curseur → o
  • Quitte le mode insertion → Echap


Remplacer



  • Remplacer le caractère sous le curseur → r
  • Remplacer avec le texte saisi → R
  • Effacer la suite e la ligne et passer en mode insertion → C
  • Quitte le mode remplacement → Echap


Copier / Couper / Coller



  • Copier la ligne courante → yy
  • Copier n lignes à partir de la ligne courante → nyy (Remplacer n par un nombre)
  • Coller → p
  • Couper la ligne courante → dd
  • Couper n lignes à partir de la ligne courante → ndd (Remplacer n par un nombre)

Effacer



  • Effacer le caractère courant → x
  • Effacer la ligne courante → dd
  • Effacer n lignes à partir de la ligne courante → ndd (Remplacer n par un nombre)
  • Effacer le mot sous le curseur → dw


Rechercher



  • Appuyer sur la touche / puis taper la chaîne à rechercher. Appuyer sur la touche Entrée. Appuyer sur la touche n pour aller à l’occurrence suivante, N pour l’occurrence précédente.
  • Recherche en avant du mot texte → /texte
  • Recherche en arrière du mot texte → ?texte
  • Aller à l'occurrence suivante → n
  • Aller à l'occurrence précédente → N


Divers



  • Annuler la dernière action → u
  • Modifier la casse du caractère → ~ (la tilde avec AltGR+2)


Le mode édition



Le mode édition permet de taper du texte et d’effacer le caractère sous le curseur avec la touche Suppr.
Pour entrer dans le mode édition, deux choix possibles :
  • Appuyer sur i pour insérer du texte (le texte tapé sera alors inséré au niveau du curseur)
  • Appuyer sur a pour ajouter du texte (le texte tapé sera alors inséré juste après le curseur)


Pour quitter le mode édition, appuyer sur la touche Echap. On se retrouve alors en mode commandes.

Commandes utiles utilisables dans vim



vim est un éditeur de texte similaire à vi mais présente plus de fonctionnalités, comme la coloration syntaxique, ou le déplacement dans l'éditeur avec les flèches directionnelles au lieu de hjkl

Les commandes avancées du mode commandes



  • Afficher les numéros de ligne → :set number ( pour désactiver → :set nonumber )
  • Afficher la coloration syntaxique → :syntax on ( pour désactiver → :syntax off )
  • Entrer et sortir du mode "paste" (coller un texte indenté) → :sset paste ( pour désactiver → :set nopaste )


Quelques commandes complexes



Remplacer du texte



Pour remplacer du texte sur 1 ligne :
Code BASH :
:s/ancienmot/nouveaumot/g

Pour remplacer 1 mot par un autre dans tout le fichier :
Code BASH :
:%s/ancienmot/nouveaumot/g


Supprimer le caractère ^M avec vi



Lorsqu’un fichier est édité sur un système Windows/DOS à la fin de chaque ligne le caractère « ^M » apparait.
Si vous souhaitez supprimer ce caractère sur l’ensemble du fichier avec l’éditeur vi voici la commande à utiliser:
Code BASH :
:%s/^M/\r/g

Il ne faut pas saisir ^M mais procéder ainsi :
Code BASH :
:%s/[ctrl+V][ctrl+M]/\r/g


/* Vrac à ranger */



Code TEXT :
 
Enregistrer un fichier systeme si on n'a pas les droits root : :w !sudo tee %
Colorer toutes les occurences d'un mot : * dessus
Y enlever : :noh
Fichier de conf : ~/.vimrc 
Exécuter un script bash dans vim :    :! ./%
Insérer le résultat de iconfig dans vim en dessous de la ligne courante ;    :r ! ifconfig
 
--