Guide de SUR-VI (Utilisation de vi)

vi



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 et mode insertion



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 mode insertion permet de taper du texte. pour entrer dans le mode insertion, appuyer sur i .

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

Le déplacement (mode commande)





Quitter / Enregistrer (mode commande)





Insertion (mode commande et passer en mode édition)





Remplacer (mode commande)





Copier / Couper / Coller (mode commande)





Effacer (mode commande)





Rechercher (mode commande)





Divers (mode commande)






Vim : un vi amélioré



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

Installer vim



Sur les bases RHEL, installer vim-enhanced :

Code BASH :
yum install vim-enhanced


Pour éviter d'utiliser vim et permettre l'alias vi=vim, éditez /etc/profile.d/vim.sh et commentez la ligne suivante :
Code TEXT :
  #[ -n "$ID" -a "$ID" -le 200 ] && return


Les commandes avancées du mode commandes






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) :
Code BASH :
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.

Code BASH :
set number
set autoindent
syntax on
color desert


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


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 :

Code TEXT :
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 :
Code TEXT :
: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 :
Code TEXT :
:set colorcolumn=40


On peut abréger la commande avec cc et définir plusieurs colonnes :
Code TEXT :
: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 :

Code BASH :
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.