wiki/HowtoVim.md
2017-05-26 11:59:13 +02:00

148 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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)