Vim

De MySoLo Wiki.

Aide mémoire VI (Vim)

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

Sommaire

Les différents modes

Texte de l’en-tête Texte de l’en-tête Texte de l’en-tête
Texte de la cellule Texte de la cellule Texte de la cellule
Texte de la cellule Texte de la cellule Texte de la cellule
Texte de la cellule Texte de la cellule Texte de la cellule

Couper/Copier/Coller

buffer

"a7yy copie les 7 prochaines lignes dans le registre a Texte de l’en-tête
"aP colle le buffer a Texte de l’en-tête


"Ay) rajoute une phrase dans a (majuscule)

ma marque la position courante dans a

'a va à la ligne marquée

va en début de dernière ligne marquée

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


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


divers

set nu (number)

numérote les lignes

10r file / :$r file / :0rlit 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

développement