Ce qui est sympa avec vim, c'est la façon dont les choses se combinent entre-elles et de façon assez intuitive. Si tu sais comment faire un marqueur et comment effacer du texte, tu sais naturellement comment effacer du texte jusqu'au marqueur.
Il n'y a pas très longtemps que j'utilise vim, mais voilà ma cheat sheet perso qui a encore besoin d'être complétée mais qui contient déjà pas mal de trucs bien pratiques :
Invocation :
vim
vim file
vim file1 file2
commande | vim -
view #mode lecture seule
vimdiff file1 file2 #mode merge
Ouvrir/sauver/quitter :
:w - sauve le fichier courant
:q - quitte
:q! - force quitte
:wq - sauve et quitte
:e file - ouvrir "file" dans un nouveau buffer
:bn - passe au buffer suivant
:bp - passe au buffer précédent
:wn - sauvegarde et passe au buffer suivant
Modes :
Vim est un éditeur modal, il y a donc différents modes
ESC - quitte le mode en cours
Mode insertion (édition) :
(i = insert, a = append, o = open)
i - insère avant le curseur
a - insère après le curseur
I - insère au début de la ligne
A - insère à la fin de la ligne
o - ouvre une nouvelle ligne sous la ligne en cours
O - ouvre une nouvelle ligne au-dessus de la ligne en cours
ctrl-p - propose l'auto-complétion du mot en cours à partir des mots du document
ctrl-x - propose l'auto-complétion du mot en cours à partir des mots du dictionnaire
Mode visuel (sélection) :
v - passe en mode visuel (sélection)
V - passe en mode visuel lignes (sélection de lignes)
ctrl-v - passe en mode visuel bloc (sélection d'un cadre de texte)
> - indenter la sélection
< - désindenter la sélection
= - indentation automatique de la sélection
Déplacement :
0 - début de ligne
^ - premier caractère significatif de la ligne
$ - fin de ligne
G - fin de fichier
:n - aller à la ligne n
Un chiffre devant une action du curseur répète l'action, par exemple 5 suivit de flèche vers le bas descend de cinq lignes.
Recherche :
/pattern - cherche "pattern" vers l'avant
?pattern - cherche "pattern" vers l'arrière
* - cherche le mot actuellement sous le curseur
n - continue la recherche vers l'avant
N - continue la recherche vers l'arrière
Rechercher/remplacer :
Vim accepte en gros les mêmes expressions que sed :
:%s/search/replace/ - remplace toutes les occurences du fichier
:%s/search/replace/c - idem mais demande confirmation
:'<,'>s/search/replace/ - remplace toutes les occurences du début à la fin de la sélection
Exemples :
indenter les lignes commençant par foo avec des tabulations :
:%s/^foo/\t/
commenter la sélection avec des # :
sélectionner des lignes de texte avec V puis :
:'<,'>s/^/#/
supprimer les retours chariot pour convertir les sauts de ligne CRLF ("DOS") en sauts de ligne LF ("Unix") :
:%s/\r//
Couper/Copier/Coller :
(d = delete, y = yank, p = paste)
d - coupe la sélection
dw - coupe un mot
dd - coupe la ligne courante
y - copie la sélection
yw - copie un mot
yy - copie la ligne courante
p - colle après le curseur
P - colle avant le curseur
(remplace la sélection si on est en mode visuel)
Ces actions peuvent être précédées d'un nombre et suivies d'un indicateur tel que 0, ^, $...
Exemples:
5dd - coupe 5 lignes
d$ - coupe jusqu'à la fin de la ligne
dG - coupe jusqu'à la fin du fichier
3yw - copie 3 mots
y0 - copie jusqu'au début de la ligne
2p - colle deux fois
Marqueurs :
Les marqueurs sont en gros un système de favoris à l'intérieur du document, pratique pour se déplacer dans les grands fichiers
mz - crée un marqueur "z" à la ligne courante
'z - va jusqu'au marqueur "z"
Les marqueurs peuvent être combinés avec d'autres commandes :
d'z - coupe jusqu'au marqueur "z"
y'z - copie jusqu'au marqueur "z"
Autres commandes de base :
:!foo - exécute la commande externe "foo" et en affiche la sortie
u - (undo) annule la dernière opération
ctrl-r - (redo) rejoue la commande annulée
. - rejoue la dernière opérationn
Configuration :
Vim est configurable via des variables
:set - montrer les valeurs qui diffèrent de la configuration par défaut
:set all - montrer toutes les valeurs
:set foo? - montre la valeur de foo
:set foo - active foo
:set foo=bar - assigne la valeur bar à foo
On peut mettre les variables dans ~/.vimrc pour une configuration persistente (dans ce cas, ne pas mettre le ':' devant set)
Variables utiles :
:set number - active la numérotation des lignes
:set dictionary=/usr/share/dict/words - dictionnaire, pour l'auto-complétion et la vérification orthographique
Plus d'infos :
:help
http://www.worldtimzone.com/res/vi.html
http://www.cs.swarthmore.edu/help/vim/home.html
http://vim.wikia.com
http://arstechnica.com/open-source/guides/2009/05/vim-made-easy-how-to-get-your-favorite-ide-features-in-vim.ars
Et mon .vimrc :
set nocompatible
set backupdir=~/.cache/vim
set smartcase
set hlsearch
" set number
syntax on
filetype plugin on
" remember last position
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
Pour les utilisateurs de vim sous bash :
echo "set -o vi" >> ~/.bashrc
et les commandes vi deviennent utilisables sous bash (par défaut en mode emacs) !
[^] # Re: En vrac, mes préférés
Posté par daemontux . En réponse à la dépêche Vim fête son 20e anniversaire. Évalué à 9.
Ce qui est sympa avec vim, c'est la façon dont les choses se combinent entre-elles et de façon assez intuitive. Si tu sais comment faire un marqueur et comment effacer du texte, tu sais naturellement comment effacer du texte jusqu'au marqueur.
Il n'y a pas très longtemps que j'utilise vim, mais voilà ma cheat sheet perso qui a encore besoin d'être complétée mais qui contient déjà pas mal de trucs bien pratiques :
Et mon .vimrc :
Pour les utilisateurs de vim sous bash :
echo "set -o vi" >> ~/.bashrc
et les commandes vi deviennent utilisables sous bash (par défaut en mode emacs) !