Vim

De MySoLo Wiki.


Aide mémoire VI (Vim)

Il s'agit juste de notes accumulées concernant VI ou plus particulièrement Vim.


Récapitulatif des commandes sous vi

:e! réouvre le fichier vierge, toutes les modifications sont perdues
W avance de mot en mot sans ponctuation (comme E,B)
S remplace toute la ligne
"2p paste le 2eme buffer killé
cw/caw change la fin du mot courant/tout le mot courant
"1p u.u. restauration progressive de tous les buffers killés: faire défiler avec u.u.
xp inverse deux lettres
     Y 
     	yank toute une ligne
     I 
     	insère en début de ligne
     s (ou cc_) 
     	efface une lettre et passe en insertion
     3s 
     	efface 3 lettres et passe en insertion (souvent plus pratique que R)
     S (ou cc) 
     	remplace toute la ligne
     ea 
     	ajoute du texte à la fin d'un mot
     2J 
     	joint deux lignes
     X 
     	comme x mais efface le caractère précédent
     ^f 
     	scrolle vers le bas (Forward)
     ^b 
     	scrolle vers le haut (Backward)
     ^e 
     	scrolle d'une ligne vers le bas
     ^y 
     	scrolle d'une ligne vers le haut
     z [return] 
     	met la ligne courante en haut de l'écran
     z . 
     	met la ligne courante au centre de l'écran
     z - 
     	met la ligne courante en bas de l'écran
     2H 
     	vas en Haut, à la 2eme ligne en partant du haut
     M 
     	va au Milieu
     3L 
     n| 
     	va à la nieme colonne de la ligne courante
     ( ) 
     	déplacement de phrases en phrases
     { } 
     	déplacement de paragraphes en paragraphes
     [[ ]] 
     	déplacement de section en section (fonctions en C)
     ?pattern? 
     	recherche le pattern en arrière
     :set nowrapscan 
     	évite de recommencer la recherche du début une fois en bas
     ``       	revient où on était précédemment
     80G 
     	aller à la ligne 80
     d+ (ou dd) 
     	détruit ligne courante + suivante
     dH / dL 
     	détruit jusqu'en haut / en bas de l'écran
     d{ / 2d( 
     	détruit un paragraphe / 2 phrases
     c/pattern 
     	remplace jusq'au pattern

     cn 
     	répette recherche
     vi -R file 
     	ouvre file en read-only
     vi -r  
     	recover mode
     "a7yy 
     	copie les 7 prochaines lignes dans le registre a
     "Ay) 
     	rajoute une phrase dans a (majuscule)
     "aP 
     	paste le buffer a
     ma 
     	marque la position courante dans a
     'a 
     	va à la ligne marquée
      va en début de dernière ligne marquée
     :set nu (number) 
     	numérote les lignes
     :17,30 m 40 
     	déplace (Move) les lignes 17 à 30 en ligne 40
     :17,30 t 40 (ou co) 
     	copie (co) les lignes 17 à 30 en ligne 40
     :17,18# 
     	affiche temporairement les lignes 17 à 18
     :20,. m $ 
     	déplace les lignes 20 à la ligne courante à la fin du fichier
     :340,$ w >> file 
     	ajoute les lignes suivant la ligne 340 à la fin de file
     :10r file / :$r file / :0r 
     	lit file et l'insere dans le texte (ligne 10/fin/début)
     := affiche le nombre total de lignes
     :/pattern/= 
     	affiche la première ligne qui matche le pattern
     g/void/nu 
     	affiche toutes les lignes contenant le mot void, avec leur numéro

de ligne

     :n / :N 
     	fichier suivant / précédent
     :e# 
     	switche à l'autre fichier (% fichier courant)
     :%s/\(That\) or \( this \)/\2 or \1/ 
     	inverse les deux termes
     /~n 
     	effectue la dernière recherche avec un n derrière
     :1,10s/.*/(&)/ 
     	entoure les lignes 1 à 10 avec des parenthèses
     \u \l 
     	dans un remplacement, met le caractère suivant en majuscule (upper)

ou en minuscule (lower)

     \U \L 
     	dans un remplacement, met le tout le texte suivant en majuscule 

(upper) ou en minuscule (lower). S'arrête avec \e ou \E

     :%s/Fortran/\U&/ 
     	Fortran -> FORTRAN
     :set ic 
     	ignore case
     :%s/\<child\>/children/g 
     	fonctionne sur des mots
     :g/^/ m0 
     	inverse toutes les lignes d'un fichier
     :1,10g/^/12,17 t $ 
     	copie 10 fois les lignes 12 à 17 à la fin du fichier
     :so file 
     	interprète le fichier de commande (.exrc par exemple)
     :!date 
     	execute date
     :r !date 
     	exécute date et insère le résultat
     :96,99!sort 
     	filtre les lignes 96 à 99 et les trie
     !)command 
     	passe la phrase suivante avec la commande. Note: ne dois fonctionner

qu'avec des lignes entières, en principe

     !!sort 
     	trie la ligne courante
     4!!sort 
     	trie les 4 prochaines lignes
     :ab abrev long 
     	ajoute une abréviation
     :unab abrev 
     	enlève une abréviation
     :ab 
     	liste les abréviations
     :map key sequence 
     	map une touche
     :unmap key sequence 
     	unmap une touche
     ^v touche 
     	écrit une touche sans la valider (return par exemple)
     :map! 
     	idem mais en mode insertion
     :map #1 command 
     	map la touche F1
     ^"gD 
     	met ligne dans registre g
     @g 
     	execute le contenu de g
     ex - file1 < exscript 
     	execute le script sur file1
     CTRL-T | CTRL-D 
     	indente déindente (mode insertion)
     >> | << 
     	indente déindente (mode commande)
     :set tabstop=8 :set shiftwidth=8 
     	set les tabulations
     :set list 
     	affiche les caractères imprimables
     :5,20 l 
     	montre tout les caractères entre 5 et 20
     :set showmatch 
     	montre les corespondances ( ) en mode insert
     :set showmode 
     	affiche le mode dans lequel on est
Récupérée de « http://mysolo.org/w/index.php/Vim »
développement
Google AdSense