vim : 10 astuces de configuration pour vos dotfiles
Cet article sera le premier d’une série consacrée aux dotfiles. Alors les dotfiles, qu’est-ce que c’est Obi-Wan ? Les dotfiles, ce sont tous les fichiers texte de configuration que l’on peut retrouver dans son répertoire utilisateur pour sauvegarder ses préférences. De nombreux logiciels utilisent cette méthode. On peut citer gnome, IntelliJ, Maven, ssh, git, bash et tant d’autres. On les appelle dotfiles −que l’on peut traduire par fichiers point− parce qu’ils ont un nom qui commence par un point, ce qui correspond aux fichiers cachés sous linux.
Introduction
Chez les troopers, on est comme beaucoup d’autres constamment alliés à la ligne de commande, cf nos articles sur babun et oh-my-zsh. Un outil indispensable dans un terminal est un éditeur de fichier. Dans notre premier article sur les dotfiles nous parlerons de vim, et plus spécialement de sa configuration avec vimrc. Si vous ne connaissez pas l’un des plus puissants éditeur de texte, commencez par vous renseigner dessus et sur les commandes de base par exemple sur http://www.openvim.com/tutorial.html.
Pour configurer vim, une seule chose à faire : vim ~/.vimrc
Sauvez c’est activé
if has("autocmd")
autocmd! bufwritepost .vimrc source ~/.vimrc
endif
De base sous vim on édite son .vimrc, on quitte et on réouvre un fichier pour voir la modification. Grâce à ces lignes, il suffira de sauvegarder pour voir ses modifications actives dans toutes les instances ouvertes de vim.
En parlant de sauvegarde
noremap <C-Z> :update<CR>
vnoremap <C-Z> <C-C>:update<CR>
inoremap <C-Z> <C-O>:update<CR>
Pour sauvegarder sous vim, il faut faire :w
Ce serait quand même mieux de faire ctrl-z
un peu à l’image des ctrl-s
que l’on trouve partout ailleurs.
Et pourquoi pas ctrl-s
inoremap <C-c> <Left>
inoremap <C-t> <Down>
inoremap <C-s> <Up>
inoremap <C-r> <Right>
Ça pose un problème car ctrl-s me permet de me déplacer vers le haut dans vim en mode insertion.
Selon la disposition de votre clavier, vous pouvez remplacer c
, t
, s
, r
par h
, j
, k
, l
si vous avez un clavier azerty. Ainsi les touches hjkl
permettent de se déplacer en mode visuel et ctrl + hjkl
permettent de se déplacer en mode insertion. Plus aucune raison d’utiliser les flèches sous vim !
un peu de couleurs
syntax on
vim connaît à peu près tous les langages, de Shell à Java, en passant par le XML ou les simples fichiers de configuration. Avec cette commande, vous aurez donc automatiquement la coloration syntaxique.
set nu
set number
Pour afficher les numéros de ligne on peut taper :set nu
. La commande est certes rigolote à écrire (comprenne qui pourra) mais ça ne suffit pas pour se retenir de l’automatiser.
Éviter la touche échap
inoremap éé <esc>
Pour sortir du mode insertion, il faut appuyer sur la touche échap par défaut. Même pour un pianiste, cette touche est trèèèèès loin sur le clavier. Mais vous pouvez bien évidemment remapper cette action. Si vous voulez des inspirations sur les meilleures combinaisons, vous pouvez regarder là : http://vim.wikia.com/wiki/Avoid_the_escape_key
Comme je suis en bépo (au lieu de azerty) et que je n’écris presque jamais de français avec vim, j’ai utilisé le mot clé éé
. Certains mappent sur ii
mais vim marquera une légère pause à chaque appui sur la touche i qui est assez déstabilisant.
pathogen
On peut faire tellement de choses, ça prendrait des semaines pour tout configurer. Pour avoir d’autres features super cool en 2 secondes, on peut ajouter des plugins. Le gestionnaire de plugin le plus connu pour vim est sans doute pathogen. Pour l’installation, il suffit de faire :
mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Maintenant, passons à quelques plugins.
Colorscheme couleurs
Les couleurs sont ternes ? le bleu sur noir des commentaires est illisible ? Alors changez les couleurs.
cd ~/.vim/bundle
git clone https://github.com/flazz/vim-colorschemes.git
Ajoutez ensuite colors matrix
dans votre .vimrc
. La liste des template de couleurs utilisables se trouvent dans ~/.vim/bundle/colorschemes/colors
.
nerdtree
cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git
Et ajoutez dans votre .vimrc
: map <C-n> :NERDTreeToggle<CR>
Dorénavant, il vous suffira de faire ctrl-n pour avoir votre répertoire de travail comme dans n’importe quel autre IDE.
nerdcommenter
cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdcommenter.git
Et dans votre .vimrc
: filetype plugin on
aintenant, en faisant <Leader>cc
que ce soit dans un fichier html, java, python, shell etc. la ligne se mettra en commentaire. Vous pouvez aussi le faire après avoir sélectionné plusieurs lignes.
Si vous vous demandez ce qu’est la touche <Leader>
c’est une touche définie pour faire certaines actions. Par défaut il s’agit de la touche \
mais vous pouvez évidemment la remapper. J’utilise la touche ,
pour ma part grâce à : let mapleader=","
.
Aller plus loin
En attendant d’autres articles sur les dotfiles, ou pour aller plus loin dans la configuration de vim, vous pouvez aller faire un tour sur github qui regorge de dotfiles pour quasiment tous les softs.
Bonus
Si vous aimez vim et IntelliJ, vous pouvez installer le plugin ideavim qui permet d’avoir vim comme éditeur de texte et depuis quelques mois vous pouvez même importer vos settings vim dans le plugin :
$ cat ~/.ideavimrc
source ~/.vimrc