wiki/HowtoVim.md

148 lines
3.8 KiB
Markdown
Raw Normal View History

2016-09-20 21:56:37 +02:00
---
categories: wip
title: Howto Vim
...
2017-05-26 11:59:13 +02:00
Un des éditeurs de texte de prédilection pour administrateur système. Vim est une couche de Vi apportant de nombreuses possibilités de personnalisation.
2017-05-26 11:32:21 +02:00
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:59:13 +02:00
Nous utilons principalement deux vues différentes ; le mode "-- VISUEL --" et le mode "-- INSERTION --". Ces deux aspects sont affichés en bas de l'interface. Les commandes présenté plus bas sont à lancer en mode visuel dont l'accès se fait via la touche Echap du clavier.
2017-05-26 11:53:26 +02:00
En cas de besoin pour obtenir de l'aide :
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
2017-05-26 11:59:13 +02:00
Nous listons en dessous les commandes de bases :
2017-05-26 11:32:21 +02:00
~~~{.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**
2017-05-26 11:59:13 +02:00
Appliquer une commande à une sélection de lignes : **:42,51!sed s/foo/bar/ FICHIER**
2017-05-26 11:32:21 +02:00
* 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)