{{tag>software vim}}
====== Trucs et astuces ======
===== Placer le curseur à l'ouverture =====
Lorsqu'on démarre l'éditeur, il est possible de positionner le curseur directement sur une ligne ou un caractère (offset ou décallage).
Pour éditer le fichier et placer directement le curseur à la 67ième ligne:
vim +67 mon_fichier.txt
Pour éditer le fichier et placer le curseur sur le 654344ième caractère du buffer:
vim +654344go mon_fichier.txt
===== Annuler / Restaurer ====
* Pour annuler une action ou un ensemble d'actions depuis le mode commande presser u ou utiliser les commandes '':u'' ou '':undo''
* Pour restaurer une action ou en ensemble d'actions depuis le mode commande, utiliser ctrl+r ou la commande '':redo''
===== Afficher le code d'un caractère =====
Placer le curseur sur le caractère est en mode normal, saisir:
ga
Pour saisir des caractères spéciaux non présents sur le clavier voir le wiki software:applications:vim:saisir-caracteres-speciaux.
===== Afficher les caractères de contrôle ======
Les caractères de contrôles ASCII ne sont pas affichés par défaut, pour le faire:
: set list
Pour les masquer:
: set nolist
ou bien:
:set list !
Les caractères de contrôle ainsi que les caractères à afficher pour les symboliser sont définis dans la variable **listchars**. Pour afficher sa valeur:
: set listchars ?
Plus d'informations dans le wiki [[software:applications:vim:afficher_caracteres_speciaux|Affichage des caractères non imprimables]].
===== Encodage ======
Pour spécifier quel jeu de caractères doivent être utilisés en interne par vim
:set encoding=utf-8
Pour spécifier quel jeu de caractère est utilisé pour l'enregistrement des fichiers:
:set fileencoding=utf-8
===== Marques =====
Les marques sont des repères sur lesquels le curseur peut rapidement revenir. On place une marque dans un fichier, en mode normal en frappant **m** puis une lettre:
ms
pour lister les marques existantes:
:marks
Pour sauter sur la marque, frapper **'** suivi de la marque:
's
===== Edition des nombres =====
Pour incrémenter ou décrémenter un nombre placé sous le curseur taper respectivement C+a ou C+x
===== Largeur des tabulations =====
Pour définir la largeur des tabulations à l'équivalent de 2 espaces:
:set ts=2
===== Executer des commandes externes ====
:TODO_DOCUPDATE:
===== Inverser l'ordre des lignes =====
Sélectionner les lignes soit en mode bloc soit avant la commande en indiquant les numéros des lignes. Pour inverser les lignes on utilise la commande externe **tac**. Depuis le mode normal:
:15,17!tac
Dans cet exemple la commande tac est palliquée entre les lignes 15 à 17.
===== Auto-complétion =====
L' auto-complétion avec Ctrl-D pour compléter les arguments des commandes ou l'aide.
===== Configuration =====
Pour vérifier quelles extensions ont été chargées au démarrage:
:scriptnames
===== Désactiver la souris =====
:set mouse-=a
===== Aide non disponible =====
Après installation d'un nouveau plugin, si l'aide n'est pas disponible:
:helptags ~/.vim/doc
===== Références =====
* http://www.vim-fr.org/index.php/Commandes_de_bases
* http://stackoverflow.com/questions/16507777/vim-set-encoding-and-fileencoding-utf-8
* http://www.quesaco.org/vim-afficher-caracteres-invisibles
* https://www.howtoforge.com/tutorial/how-to-access-shell-or-run-external-commands-from-within-vim/