Memo éditeur de texte VI et VIM

 Memo  Commentaires fermés
jan 072005
 

Commandes d’insertion de texte

- i insert insertion avant le curseur
- I insert insertion au début de la ligne
- a append insertion après le curseur
- A append insertion à la fin de la ligne
- o open ouvre une ligne blanche en dessous de la ligne courante
- O open ouvre une ligne blanche au dessus de la ligne courante

Pour abandonner le mode insertion et retourner au mode commande, appuyer sur la touche

insert insertion d’un caractère de contrôle

Commande de concaténation

J concatenate concatène la ligne suivante à la fin de la ligne courante

Commandes de déplacements

- /\ curseur déplacement d’une ligne vers le haut
- \/ curseur déplacement d’une ligne vers le bas
- <= curseur déplacement d’un caractère vers la gauche
- => curseur déplacement d’un caractère vers la droite
- w word avance au début du mot suivant
- F forward page suivante
- B backward page précédente
- ^ ou 0 début de la ligne courante
- $ fin de la ligne courante

Recherche d’un chaîne de caractères

- /toutou recherche la chaîne « toutou » à partir de la position actuelle du curseur vers le bas du fichier
- ?toutou recherche la chaîne « toutou » à partir de la position actuelle du curseur vers le haut du fichier
- n new recherche la prochaine occurence de la chaîne « toutou » recherche vers le bas du fichier
- N new recherche l’occurence précédente de la chaîne « toutou » recherche vers le haut du fichier

Suppression et utilisation du buffer

- x suppression du caractère sous le curseur
- X suppression du caractère précédent le curseur
- dd delete suppression de la ligne courante
- yy yank copie la ligne courante dans le buffer
- p paste colle la ligne contenu dans le buffer après la ligne courante
- P paste colle la ligne contenu dans le buffer avant la ligne courante
- u undo annule la dernière commande et seulement la dernière

Les commandes x, X, dd, et yy peuvent être précédées d’un facteur multiplicateur de leur action. Par exemple 7dd supprimera la ligne courante et les 6 lignes suivantes.

Remplacement

- r replace remplace le caractère sous le curseur par un nouveau caractère
- R replace remplace tous les caractères par de nouveaux caractères. Pour terminer appuyer sur la touche
- C change remplace la fin de la ligne par de nouveaux caractères. Pour terminer appuyer sur la touche

Expressions régulières et mode commande globale

Les expressions régulières servent à manipuler le fichier texte dans son ensemble.

- . représente un caractère quelconque
- * multiplicateur du caractère précédent
- ^ début de ligne
- $ fin de ligne ou fin de fichier
- \ permet de représenter les caractères . * ^ $ en le mettant devant. Exemple : \* ou \$
- \1 permet la réécriture de l’expression régulière lors d’une substitution
- s commande de substitution
- d commande de destruction de lignes
- : passage en mode commande globale
- g parcours global du fichier ou de la ligne

Exemples :

- :1,$s/neant/bof/g de la ligne 1 à la dernière ligne, substitution de la chaîne neant par la chaîne bof
- :1,$s/neant/bof/ idem mais seulement pour la première occurence de la chaîne neant par ligne
- :1,3s/^.*=/BRAVO/ de la ligne 1 à la ligne 3, substitution du début de la ligne (^) jusqu’au (.*) caractère = par la chaîne BRAVO
- 1,$s/B.*O/\1 Veinard/ rajoute aux mots commençant par B et terminant par O, le mot « Veinard »
- :1,$s/.$// suppression du dernier ($) caractère quel qu’il soit (.)
- :10,20d suppression des lignes 10 à 20
- :g/^#/d suppression des lignes commençant par un #
- :g/^M/s//^M/g suppression des ^M en milieu de ligne et substitution par un vrai retour à la ligne. Taper sur « Enter » pour obtenir le ^M.

Divers mais utiles

- :set showmode indique le mode (insertion ou commande) en bas de la fenêtre
- :set number affiche le numéro de chaque ligne
- :155 positionne sur la ligne 155
- :set filetype=unix transforme le type DOS d’un fichier en type UNIX

Sauvegarder et quitter

- :w write sauvegarde le fichier en cours d’édition
- :q quit abandonne l’édition
- :q ! quit abandonne l’édition sans sauvegarder le fichier
- :x exit sauvegarde le fichier en cours d’édition et abandonne l’édition (idem :wq)

réalisé par manas@unice.fr

Maitriser la ligne de commande

 Technologic  Commentaires fermés
mai 072004
 
Deux types de réaction du clavier sont possibles avec un shell bash : le mode vi et le mode emacs. En voici une courte introduction.

L’utilisation avancé de ces modes demande un apprentissage. Leur configurations ce fait dans le fichier /etc/imputrc ou dans le fichier propre fichier .imputrc présent dans votre home user.

Le mode emacs est le mode par défaut sous débian d’après ma propre expérience. C’est aussi mon mode préféré bien que le la vituosité des adorateurs du mode vi est extrèmement impréssionante.

Mode emacs

Pour le mode emacs l’alternative est de saisir directement dans votre terminal :
set -o emacs

Raccourcis Voici quelques raccourcis du shell bash en mode emacs pour mieux naviguer. D’abord avec la touche contrôle :

Ctrl+p : commande précédente
Ctrl+c : tue le processus en cours
Ctrl+z : suspend le processus en cours
Ctrl+j : passe a la ligne suivante (enter)
Ctrl+a : début de ligne
Ctrl+e : fin de ligne
Ctrl+l : efface l’écran
Ctrl+s : masque la saisie (Ctrl+q pour revenir)
Ctrl+u : efface tout à gauche du curseur
Ctrl+w : efface le mot à gauche du curseur
Ctrl+k : efface le mot à droite du curseur
Ctrl+y : colle (yank) ce qui avait été saisi précédemment,
Ctrl+d : efface le caractère courant ou tue le shell si la ligne est déjà vide,
Ctrl+h : effacement du caractère précédent le curseur
Ctrl+t : permet d’inverser deux lettres, iv -> vi
Ctrl+r : pour une recherche dans l’historique.
Ctrl+_ : annule l’action précédente
Ctrl+r pour une recherche dans l’historique
Ctrl+d : Fin
Ctrl+c : Fin

Escape

Maintenant avec la touche échappement (escape) :

Esc+> début de l’historique
Esc +< fin de l’historique
Esc+5+# : Affiche 5 carractères #, valable avec tous les carractères.
Esc+b : déplacement arrière d’un mot (backward)
Esc+f : déplacement avant d’un mot (forward)
Esc+t : échange le mot courant et le mot précédent
Esc+Backspace : effacer le mot précédent (comme Ctrl+w),
Esc+d : efface le mot suivant
Esc+u : Convertit le mot à droite du curseur en majuscules
Esc+l : Convertit le mot à droite du curseur en minuscules
Esc+c : met en majuscule la lettre courante, en minuscules le mot courant, puis se place au mot suivant

Point d’exclamation

Le ! en shell permet plein de trucs sympa.

 » !! » refait la dernière commande
 » !cmd » refait la dernière commande commençant par cmd
 » !cmd:p » permet de visualiser sans éxecuter la dernière commande commençant par cmd
 » !$ » est le dernier mot du ligne de commande précédent
 » !cmd :$ » est le dernier mot du dernier ligne de commande commençant par cmd
 » !* » est l’ensemble de la dernière ligne de commande à part le premier mot

C’est très performant, merci Mr Bourne et successeurs. Cela a changer ma façon de travailler. Si vous souhaitez en savoir plus je vous renvois vers la lecture du man.

Mode vi

Pour passer en mode vi saisir dans votre terminal saisissez :
set -o vi

Voici quelques autres raccourcis de bash en mode vi pour mieux travailler :

f et F pour faire un goto caractère
F pour retourner sur l’espace précédent de la ligne de commande.
b pour revenir au début du mot précédent, et w pour aller au mot suivant.
d^ pour effacer jusqu’au début de la ligne, et d$ pour effacer jusqu’à la fin.
u pour annuler un changement ; comme dans Vim, on peut faire des annulation successive.
un seul registre est disponible, mais c’est déjà pas mal : dw pour effacer le mot à partir du curseur, p pour le coller.
/ et ? pour rechercher dans l’historique.
r pour remplacer un caractère.

Documentation

http://www.linux-france.org

http://www-phase.c-strasbourg.fr

© 2012 Karlesnine Suffusion theme by Sayontan Sinha