vim

Afficher les différences entre 2 fichiers

vim -d "+set number" fichier1 fichier2

Quitter

:q
:qa!

Sauver et quitter

:x
:wq

Sauver

:w

Sauver sous un autre nom

:w nouveauNom

Activer la souris

:set mouse=a

Activer et désactiver l’indentation par espace ou tabulation

:set expandtab
:set noexpandtab

Folding

zf#j            creates a fold from the cursor down # lines.
zf/string       creates a fold from the cursor to string .
zj              moves the cursor to the next fold.
zk              moves the cursor to the previous fold.
zo              opens a fold at the cursor.
zO              opens all folds at the cursor.
zm              increases the foldlevel by one.
zM              closes all open folds.
zr              decreases the foldlevel by one.
zR              decreases the foldlevel to zero -- all folds will be open.
zd              deletes the fold at the cursor.
zE              deletes all folds.
[z              move to start of open fold.
]z              move to end of open fold.

http://www.pixelbeat.org/vim.tips.html

Visual mode

>       shift the block right one shiftwidth
<       shift the block left one shiftwidth
=       reindent the block
y       yank ( copy ) the block ( paste with a p )
d       delete the block
c       change the block

Undo

u

Déplacement

Mot suivant

w

Mot précédent

b

Fin du mot courant

e

Copy / Paste

:set paste
+p
*p

Déplacer la ligne vers le bas

ddp

Déplacer ka ligne vers le haut

ddkP

Dupliquer la ligne vers le bas

yyp

Dupliquer la ligne vers le haut

yykp

Dupliquer 5 lignes

5yyp

Raccourcis par moi

,<down> pour déplacer vers le bas
Ctrl-j pour déplacer vers le bas
,<up> pour déplacer vers le haut
Ctrl-u pour déplacer vers le haut
,<right> pour dupliquer vers le bas
Ctrl-k pour dupliquer vers le bas
,<left> pour dupliquer vers le haut
Ctrl-h pour dupliquer vers le haut

Search

:%s/foo/bar/g

Onglets

Ajouter

:tabfind
:tabnew

Switch

gt
:tabnext
:tabprevious
:tabfirst
:tablast

Display

:tabs

Déplacer au début

:tabm 0

Déplacer à la fin

:tabm

Raccourcis par moi

<tab> pour aller à l'onglet suivant
,<tab> pour aller à l'onglet précédent

Commandes

Commande            Sens        Type            Effet
i                   insert                      passe en mode insertion
a                   append                      passe en mode insertion en faisant avancer le curseur
o                   open                        passe en mode insertion en créant une nouvelle ligne sous le curseur
O                   open                        passe en mode insertion en créant une nouvelle ligne au dessus du curseur
R                   replace                     passe en mode remplacement
A                                               passe en mode insertion en allant à la fin de la ligne
I                                               passe en mode insertion en allant au début de la ligne
v                   visual                      passe en mode visuel
V                                               passe en mode visuel par ligne
Ctrl-V                                          passe en mode visuel par bloc
h                               déplacement     déplace le curseur vers la gauche
j                               déplacement     déplace le curseur vers le bas
k                               déplacement     déplace le curseur vers le haut
l                               déplacement     déplace le curseur vers la droite
w                   word        déplacement     avance d'un mot
b                   back        déplacement     recule d'un mot
e                   end         déplacement     avance jusqu'à la fin d'un mot
W                               déplacement     avance d'un MOT
B                               déplacement     recule d'un MOT
E                               déplacement     avance jusqu'à la fin d'un MOT
fx                  forward     déplacement     avance jusqu'au prochain x
Fx                              déplacement     recule jusqu'au x précédent
tx                              déplacement     avance jusqu'à juste avant le prochain x
Tx                              déplacement     recule jusqu'à juste après le x précédent
gg                              déplacement     va au début du texte
G                               déplacement     va à la fin du texte
$                               déplacement     va à la fin de la ligne
0                               déplacement     va au début de la ligne
{                               déplacement     va au début du paragraphe
}                               déplacement     va à la fin du paragraphe
(                               déplacement     va au début de la phrase
)                               déplacement     va à la fin de la phrase
n                   next        déplacement     continue une recherche
N                               déplacement     continue une recherche, en sens inverse
u                   undo                        annule la dernière action
Ctrl-R              redo                        refait la dernière action annulée
.                   redo                        répète la dernière opération
x                                               supprime un caractère vers la droite (« delete »)
X                                               supprime un caractère vers la gauche (« backspace »)
s                   substitute                  supprime un caractère et passe en mode insertion
rx                  replace                     remplace un caractère par x
p                   paste                       colle un registre après le curseur
P                                               colle un registre avant le curseur
~                                               passe un caractère de majuscule en minuscule ou l'inverse
/                                               fais une recherche
?                                               fais une recherche vers l'arrière
*                                               cherche le mot sous le curseur
#                                               cherche le mot sous le curseur vers l'arrière
d                   delete      action          supprime
c                   change      action          supprime et passe en mode insertion
y                   yank        action          copie dans un registre
gu                              action          passe en minuscules
gU                              action          passe en majuscules
g?                              action          passe en rot13
<                               action          décale vers la gauche
>                               action          décale vers la droite
gq                              action          recoupe les lignes
=                               action          met en forme un programme
" x                                             sélectionne le registre x
m x                                             pose la marque x
' x                             déplacement     va à la marque x (par ligne)
` x                             déplacement     va à la marque x (par caractère)

Remplacer les tabulations par des espaces

:%s/\t/    /g

Split

:split
:vsplit

Se déplacer dans les splits

Ctrl-w Ctrl-w
Ctrl-w <up>
Ctrl-W <down>
Ctrl-w <right>
Ctrl-w <left>

Fermer

Ctrl-w q

Echanger

Ctrl-w r
Ctrl-w R

Resize

Ctrl-w +
Ctrl-w -

NERD Tree

Afficher / Cacher la sidebar

Ctrl-l
<F5>

Tlist

Afficher / Cacher le panneau

Ctrl+y
<F8>

@todo

Afficher toutes les @todo récursivement

<F6>

Cacher le panneau des @todo

<F5>

Formater

gg=G

Hexadecimal

Vim permet d’éditer vos fichiers binaires en hexadecimal, ceci peut être utile si vous souhaitez modifier vos fichiers binaires sans les recompiler.
Tout d’abord il faut éditer votre fichier avec vim, mais il faut spécifier avec l’option -b que ce fichier est un binaire :

vim -b binaire

Une fois que ceci est fait passez vim en mode commande en appuyant sur la touche échap entrez ensuite la commande suivante :

:set display=uhex

Enfin toujours en mode commande tapez la commande suivante :

:%!xxd

Votre fichier est maintenant en hexadecimal, vous pouvez alors le modifier.