148 lines
3.8 KiB
Markdown
148 lines
3.8 KiB
Markdown
---
|
||
categories: wip
|
||
title: Howto Vim
|
||
...
|
||
|
||
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.
|
||
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 :
|
||
|
||
~~~
|
||
sudo apt install vim
|
||
vimtutor
|
||
sudo update-alternatives --config editor
|
||
~~~
|
||
|
||
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.
|
||
|
||
En cas de besoin pour obtenir de l'aide :
|
||
|
||
~~~{.bash}
|
||
:help <cmd>
|
||
~~~
|
||
|
||
### Racourcis
|
||
|
||
Nous listons en 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"
|
||
|
||
0 = "début de ligne"
|
||
^ = "début de ligne (sauf caractères invisibles)"
|
||
w = "fin du mot"
|
||
$ = "fin de ligne"
|
||
G = "fin du fichier"
|
||
|
||
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)"
|
||
~~~
|
||
|
||
## Commandes avancées
|
||
|
||
* afficher les caractères invisibles :
|
||
|
||
~~~{.bash}
|
||
:set list
|
||
~~~
|
||
|
||
* coloration syntaxique :
|
||
|
||
~~~{.bash}
|
||
:syntax on
|
||
~~~
|
||
|
||
* modifier la couleur pour *desert* :
|
||
|
||
~~~{.bash}
|
||
:color desert
|
||
~~~
|
||
|
||
* Commenter du code selon la procédure suivante :
|
||
|
||
~~~{.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»"
|
||
~~~
|
||
|
||
* Pour décomenter, suivre la liste des commandes suivante :
|
||
|
||
~~~{.bash}
|
||
C-v = "Mode «Visual» activé"
|
||
<fleches_directionneles> = "Choisir la zone concernée"
|
||
x = "Supprimer le caractère"
|
||
~~~
|
||
|
||
* Taper des caractères UTF8
|
||
|
||
~~~{.bash}
|
||
CTRL-V u XXXX = "où `XXXX` est le code du caractère UTF8"
|
||
~~~
|
||
|
||
* Taper des caractères ASCII
|
||
|
||
~~~{.bash}
|
||
Ctrl+v NNN = "où `NNN` est le code du caractère UTF8"
|
||
~~~
|
||
|
||
* Mode sed
|
||
|
||
Rechercher sans la casse : **/\\cfoo**
|
||
|
||
Appliquer une commande à une sélection de lignes : **:42,51!sed s/foo/bar/ FICHIER**
|
||
|
||
* Scripting
|
||
|
||
Exécuter automatiquement des commandes :
|
||
|
||
~~~
|
||
$ vim ":retab" "+wq"
|
||
~~~
|
||
|
||
Écrire des commandes dans un script puis les rejouer :
|
||
|
||
~~~
|
||
$ vim -s script.txt FICHIER
|
||
$ vim -w script.txt FICHIER2
|
||
~~~
|
||
|
||
* Vimdiff
|
||
|
||
~~~{.bash}
|
||
C-w C-w : "Changer de colonne du fichier comparé"
|
||
~~~
|
||
|
||
## Webografie
|
||
|
||
* [Documentation sur le site officiel](http://www.vim.org/docs.php)
|
||
* [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)
|