Différences entre versions de « Vi / Vim »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 84 : Ligne 84 :
 
*''p'' → colle les lignes copiées à la ligne en-dessous
 
*''p'' → colle les lignes copiées à la ligne en-dessous
 
*''P'' → colle les lignes copiées au-dessus
 
*''P'' → colle les lignes copiées au-dessus
 +
== Suppressions ==
 +
*''g/^#/d'' → permet de supprimer les lignes  commençant par ''#''
 +
*''g/^$/d'' → permet de supprimer les lignes vides (sans espace ni tabulation)
 +
 +
== Remplacements ==
 +
=== Au niveau fichier ===
 +
*'':s/toto/titi/g'' → permet de remplacer toutes les occurrences (grâce au ''/g'') de ''toto'' par ''titi'' sur la ligne du curseur
 +
*'':%s/toto/titi/g'' → permet de remplacer toutes les occurrences (grâce au ''/g'') de ''toto'' par ''titi'' dans tout le document (grâce au ''%'')
 +
*'':[1,5]/toto/titi/g'' → permet de remplacer toutes les occurrences (grâce au ''/g'') de ''toto'' par ''titi'' de la ligne 1 à la ligne 5 (grâce au ''[1,5]'')
 +
 +
=== Au niveau curseur ===
 +
*''x'' → permet de supprimer le caractère sur le curseur
 +
*''rX'' → permet de remplacer le caractère sur le curseur par X
 +
*''R'' → permet de passer en mode remplacement
  
 
= Astuces =
 
= Astuces =

Version du 9 octobre 2016 à 16:58

Introduction

Création d'un fichier texte

vi ou vim (alias sous CentOS) est un éditeur en mode console peu convivial certes, mais ultra puissant et qui s'utilise de la manière suivante:

vi <nom_fichier>

Après l’appui sur la touche entrer, le prompt disparaît pour laisser place à une série de tilde (~) qui indiquent que les lignes sont vides.

Les modes

Permutation

Il y a deux modes dans vi:

  • le mode saisie;
  • le mode commande.

Par défaut il est en mode commande et :

  • la touche insert ou i permet de passer en mode insertion ;
  • la touche Echap permet de revenir au mode commande.

Lorsque l'on est en mode insertion un nouvel appui sur la touche insert permet de passer en mode replace (remplacement).

Répétitions

n<commande>

Par exemple dd efface une ligne et 5dd efface 5 lignes

Quitter...

...en sauvant

Lorsque l'on a fini d'éditer son fichier texte, on peut le sauver en repassant en mode commande (touche Echap) et en tapant:

:wq

ou bien

:x

ou encore en appuyant deux fois sur la touche Z (deux Z majuscules)

...en abandonnant les modifications

Si l'on a fait une erreur et que l'on veut quitter sans sauver, on peut le faire en repassant en mode commande (touche Echap) et en tapant:

:q!

Éditer

Undo

u permet de défaire une modification

Repeat

. permet de répéter la dernière commande d’édition

Effacer

  • x permet d’effacer le caractère courant
  • c permet d’effacer le texte et de passer en mode insertion:
    • cw → change jusqu’à la fin du mot
    • c$ → change jusqu’à la fin de la ligne
    • cc → change la ligne courante

Couper

  • d permet de couper grâce à l’appui de:
    • dw → coupe jusqu’à la fin du mot
    • dd → coupe la ligne complète
    • d0 → coupe jusqu’au début de la ligne

Copier

yy → (yank) copie la ligne courante dans le buffer (nyy copie les n lignes)

Coller

  • p → colle les lignes copiées à la ligne en-dessous
  • P → colle les lignes copiées au-dessus

Suppressions

  • g/^#/d → permet de supprimer les lignes commençant par #
  • g/^$/d → permet de supprimer les lignes vides (sans espace ni tabulation)

Remplacements

Au niveau fichier

  • :s/toto/titi/g → permet de remplacer toutes les occurrences (grâce au /g) de toto par titi sur la ligne du curseur
  • :%s/toto/titi/g → permet de remplacer toutes les occurrences (grâce au /g) de toto par titi dans tout le document (grâce au %)
  • :[1,5]/toto/titi/g → permet de remplacer toutes les occurrences (grâce au /g) de toto par titi de la ligne 1 à la ligne 5 (grâce au [1,5])

Au niveau curseur

  • x → permet de supprimer le caractère sur le curseur
  • rX → permet de remplacer le caractère sur le curseur par X
  • R → permet de passer en mode remplacement

Astuces

Placements

Dans la globalité du fichier

  • A → permet de placer le curseur en mode insert à la fin de la ligne courante
  • :X → permet de se déplacer à la ligne X du fichier
  • XG → idem, permet de se déplacer à la ligne X du fichier
  • G → permet de se déplacer à la fin du fichier
  • `` → permet de revenir à la position précédente

Sur la partie présente à l'écran

  • H → déplace le curseur à la première ligne visible à l'écran (HOME)
  • M → déplace le curseur au milieu de l'écran (MIDDLE)
  • L → déplace le curseur à la dernière ligne visible à l'écran (LAST)

Sur la ligne

  • W → déplace le curseur sur le mot suivant sans tenir compte de la ponctuation
  • w → déplace le curseur sur le mot suivant
  • B → déplace le curseur sur le mot précédent sans tenir compte de la ponctuation
  • b → déplace le curseur sur le mot précédent

Recherche

  • /coucou → permet de placer le curseur sur la prochaine occurrence de coucou
  • n → permet de passer à l'occurence suivante (next)

Exécution

  • ! → permet d’exécuter une commande depuis vi, cela démarrera un Shell interactif.
  • :sh → permet de passer l’éditeur de texte en arrière plan pour avoir un shell et ctrl+d permet de le reprendre