wiki/HowtoVim.md

146 lines
3.6 KiB
Markdown
Raw Normal View History

2016-09-20 21:56:37 +02:00
---
categories: wip
title: Howto Vim
...
2017-05-26 11:32:21 +02:00
Un des éditeur de texte de prédilection pour administrateur système. Vim est une couche de Vi apportant de nombreuses possibilités de personnalisation.
Ses début dans les années 90, il est encore très apprécié de par sa rapidité et que son code source soient encore (et restera) libre. Merci à [Bram Moolenaar](https://fr.wikipedia.org/wiki/Bram_Moolenaar) qui est l'initiateur de ce logiciel.
## Premiers pas
Rien de plus simple pour l'installer et le définir en tant qu'éditeur par défaut :
2016-09-20 21:56:37 +02:00
~~~
2017-05-26 11:32:21 +02:00
sudo apt install vim
vimtutor
sudo update-alternatives --config editor
2016-09-20 21:56:37 +02:00
~~~
2017-05-26 11:32:21 +02:00
En cas de besoin pour obtenir de l'aide en ligne de commande :
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
~~~{.bash}
2017-05-26 11:46:39 +02:00
:help <cmd>
2017-05-26 11:32:21 +02:00
~~~
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
### Racourcis
Nous listons ci-dessous les commandes de bases :
~~~{.bash}
i = "passer en mode «Insert» - à gauche du curseur"
I = "passer en mode «Insert» - en début de phrase"
a` = "passer en mode «Insert» - à droite du curseur"
A = "passer en mode «Insert» - en fin de phrase"
Échap = "passer en mode «Edit» sauf si vous avez le nouveau MacBook Pro sans cette touche ;)"
:q! = "quitter sans sauvegarder"
:wq ou :x = "sauvegarder et quitter"
:x =
dd = "supprimer (et copier) une ligne - ajoute la ligne dans le buffer"
v = "sélection du texte à partir du curseur"
V = "sélection du texte par ligne"
y = "copier - ajoute la sélection dans le buffer"
Y = "copier la ligne - ajoute dans le buffer"
p = "coller le buffer"
x ou . = "effacer le caractère à droite"
X = "effacer le caractère à gauche"
u = "undo"
vc = "change word - change le mot après l'emplacement du curseur"
C-r = "redo"
2017-05-26 11:46:39 +02:00
0 = "début de ligne"
^ = "début de ligne (sauf caractères invisibles)"
w = "fin du mot"
$ = "fin de ligne"
G = "fin du fichier"
2017-05-26 11:32:21 +02:00
r = "remplacer un caractère"
c[0|^|w|$|G] = "changer (supprime et passe en mode insertion)"
d = "supprimer"
~ = "inverser la casse d'un caractère"
:set paste` / `:set nopaste = "passer en mode copier/coller (et revenir)"
~~~
2017-05-26 11:46:39 +02:00
## Commandes avancées
2017-05-26 11:32:21 +02:00
2017-05-26 11:46:39 +02:00
* afficher les caractères invisibles :
2017-05-26 11:32:21 +02:00
~~~{.bash}
:set list
~~~
2017-05-26 11:46:39 +02:00
* coloration syntaxique :
2017-05-26 11:32:21 +02:00
~~~{.bash}
:syntax on
~~~
2017-05-26 11:46:39 +02:00
* modifier la couleur pour *desert* :
2017-05-26 11:32:21 +02:00
~~~{.bash}
:color desert
~~~
2017-05-26 11:46:39 +02:00
* Commenter du code selon la procédure suivante :
2017-05-26 11:32:21 +02:00
~~~{.bash}
C-v = "Mode «Visual» activé"
<fleches_directionneles> = "Choisir la zone concernée"
I = "Insérer en début de ligne - active le mode «Insert»"
<char> = "Caractère du commentaire en question - selon langage"
Echap = "Quitter le mode «Insert»"
~~~
2017-05-26 11:46:39 +02:00
* Pour décomenter, suivre la liste des commandes suivante :
2017-05-26 11:32:21 +02:00
~~~{.bash}
C-v = "Mode «Visual» activé"
<fleches_directionneles> = "Choisir la zone concernée"
x = "Supprimer le caractère"
~~~
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
* Taper des caractères UTF8
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
~~~{.bash}
CTRL-V u XXXX = "où `XXXX` est le code du caractère UTF8"
~~~
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
* Taper des caractères ASCII
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
~~~{.bash}
Ctrl+v NNN = "où `NNN` est le code du caractère UTF8"
~~~
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
* Mode sed
2016-09-20 21:56:37 +02:00
2017-05-26 11:32:21 +02:00
Rechercher sans la casse : **/\\cfoo**
Appliquer une commande à une selection de lignes : **:42,51!sed s/foo/bar/ FICHIER**
* Scripting
2016-09-20 21:56:37 +02:00
Exécuter automatiquement des commandes :
~~~
2016-09-20 21:56:37 +02:00
$ vim ":retab" "+wq"
~~~
Écrire des commandes dans un script puis les rejouer :
~~~
2016-09-20 21:56:37 +02:00
$ vim -s script.txt FICHIER
$ vim -w script.txt FICHIER2
~~~
2017-02-14 11:22:01 +01:00
2017-05-26 11:32:21 +02:00
* Vimdiff
2017-02-14 11:22:01 +01:00
~~~{.bash}
C-w C-w : "Changer de colonne du fichier comparé"
~~~
2017-05-26 11:32:21 +02:00
## Webografie
2017-05-26 11:46:39 +02:00
* [Documentation sur le site officiel](http://www.vim.org/docs.php)
2017-05-26 11:32:21 +02:00
* [Vim casts](<http://vimcasts.org/)
* [Wallpaper movement commands](https://bitbucket.org/tednaleid/vim-shortcut-wallpaper/src)
* [Mémento des touches de racourcis](http://vimsheet.com)