LVM - Outer Heaven

Insertion (mode commande et passer en mode édition)

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

Quitter / Enregistrer (mode commande)

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

Le déplacement (mode commande)

Il existe d’autres modes d’édition, comme le mode remplacement.

  • Aller en début de ligne → 0
  • Aller en fin de ligne → $
  • Ligne précédente (ou monter) → k (flèche haut avec vim)
  • Ligne suivante (ou descendre) → j (flèche bas avec vim)
  • Caractère précédent (ou aller à gauche) → h (flèche gauche avec vim)
  • Caractère suivant (ou aller à droite) → l (flèche droite avec vim)
  • 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

Remplacer (mode commande et passer en mode édition)

A titre personnel, je n’utilise que très rarement ce mode de remplacement.

  • Remplacer le caractère sous le curseur → r puis le caractère à insérer
  • Remplacer avec le texte saisi → R puis le texte à remplacer
  • Effacer la suite de la ligne et passer en mode insertion → C
  • Quitte le mode remplacement → Echap

Copier / Couper / Coller (mode commande)

  • Copier la ligne courante → yy
  • Copier n lignes à partir de la ligne courante → nyy (Remplacer n par un nombre)
  • Coller (ligne en dessous le curseur) → p
  • Coller (ligne au dessus le curseur) → P
  • Couper la ligne courante → dd
  • Couper n lignes à partir de la ligne courante → ndd (Remplacer n par un nombre)

Effacer (mode commande)

  • 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
  • Effacer du curseur à la fin de la ligne → d$
  • Effacer du début de la ligne au curseur → d^

Rechercher (mode commande)

  • 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 (mode commande)

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

Remplacer du texte

Pour remplacer du texte sur 1 ligne :


:s/ancienmot/nouveaumot/g

Pour remplacer 1 mot par un autre dans tout le fichier :

:%s/ancienmot/nouveaumot/g

commenter du texte

pour commenter :

s/^/#

pour decommenter :

s/^#//

pour un bloque, le fait en mode visuel

CAS SPECIAL : 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:

:%s/^M/\r/g

Il ne faut pas saisir ^M mais procéder ainsi :

:%s/[ctrl+V][ctrl+M]/\r/g

Personnalisation et confort vim

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 )
  • Indentation automatique → :set autoindent( pour désactiver → :set noautoindent )
  • Colorer toutes les occurrences d’un mot → ***** sur le mot qui est sous le curseur (pour désactiver : :noh )
  • Activer la coloration syntaxique d’un langage particulier → :set syntax=html

Changer la coloration syntaxique

Par défaut, la coloration syntaxique de vim peut ne pas être terrible (commentaires bleu très foncé).
Vous pouvez changer les couleurs avec la commande :color theme

Pour lister les thèmes (remplacer le 81 par la version de vim) :

ls /usr/share/vim/vim81/colors/

Personnellement, j’aime bien le thème desert (couleurs similaires à nano).

Rendre persistantes les données

Pour rendre persistantes les informations, on peut éditer le fichier ~/.vimrc et y ajouter les lignes tapées.

set number
set autoindent
syntax on
color desert

Programmation : sauter entre une ouverture et une fermeture de parenthèse, accolade

Si dans VIM, vous avez du code long, et que vous souhaitez aller d’une accolade à l’autre, il est possible de s’y rendre directement avec % en mode commande.

Exemple :

if ( $toto == $tata ) {
        echo "truc";
}

En se positionnant sur le } et en appuyant sur %, on revient au { en fin de ligne où il y a le texte $toto == $tata !

interagir entre vim et bash

Si on veut par exemple exécuter le script qu’on est en train d’écrire dans vim : :! ./%

Si on veut enregistrer un fichier système alors qu’on l’a édité en tant qu’utilisateur simple : :w !sudo tee %

Insérer le résultat d’une commande bash (exemple avec ’ls -l / | grep bin’ ) dans vim en dessous de la ligne courante ; :r ! ls -l / | grep bin

Afficher les caractères invisibles (fin de ligne, tabulations)

Pour afficher les caractères invisibles, par exemple pour mieux repérer les tabulations des espaces, on pourra utiliser :

:set list

Afficher des colonnes virtuelles

Dans un fichier, on peut afficher des repères à un certain nombre de caractères.
Des colonnes rouges apparaissent.

Pour mettre un repère à 40 caractères :

:set colorcolumn=40

On peut abréger la commande avec cc et définir plusieurs colonnes :

:set cc=40,80

Créer un fichier chiffré

On peut, avec vim, créer un fichier qui sera protégé par mot de passe.

On utilisera pour cela :

vim -x fichier.txt

La passphrase sera demandée.

Pour procéder au chiffrement d’un fichier non chiffré, on utilisera :X

Pour ne plus chiffrer le fichier, on utilisera :X et on laissera la passphrase vide.