Ma configuration de Vim
Avertissement: Cet article date de 2015. J'utilise Neovim à présent et je détaille mes astuces sur mon wiki.
Cette semaine, j'ai été amené à réinstaller un ordinateur sous Debian 7 "Wheezy" vers Debian 8 "Jessie". J'ai du à nouveau jeter un œil à ma configuration de Vim. Dans la foulée, je suis tombée sur toute une série d'articles me vantant tels ou tels plugins pour me changer la vie. J'ai donc essayé pas mal de choses. Voici un petit résumé de ma configuration et des quelques plugins et astuces qui me sont devenus indispensables.
Installation de Vim
C'est évidemment la première étape.
$ sudo aptitude install vim
Une fois que vim est installé et que vous l'avez utilisé au moins une fois, un fichier .viminfo
est créé dans votre home
. Il contient l'historique des commandes utilisées, l'historique des fichiers ouverts avec Vim et toute une série d'autres choses qui vous seront peut-être utiles un jour. Personnelement, je ne l'ouvre jamais...
Configuration de base
Pour rendre Vim un peu plus sexy, on va créer le fichier de configuration ~/.vimrc
et y rajouter quelques options. Ce fichier sera chargé au démarrage de Vim.
$ vim ~/.vimrc
" --- OPTIONS DE BASE
" Annule la compatibilité avec Vi
set nocompatible
" Affichage
set title "Met à jour le titre de votre fenêtre ou de votre terminal
set number "Affiche le numéro des lignes
set ruler "Affiche la position actuelle du curseur
set wrap "Affiche les lignes trop longues sur plusieurs lignes
set scrolloff=3 "Affiche un minimum de 3 lignes autour du curseur (pour le scroll)
" Recherche
set ignorecase "Ignore la case lors d'une recherche
set smartcase "Si une recherche contient une majuscule, réactive la sensibilité à la case
set incsearch "Surligne les résultats de recherche pendant la saisie
set hlsearch "Surligne les résultats de recherche
" Beep
set noerrorbells "Empêche Vim de beeper
" Active le comportement habituel de la touche retour en arrière
set backspace=indent,eol,start
" Cache les fichiers lors de l'ouverture d'autres fichiers
set hidden
" Active les comportements spécifiques aux types de fichiers comme la syntaxe et l'indentation.
filetype plugin indent on
syntax enable
" Gestion des tabulations (Ctrl + T pour avancer d'une colonne, Ctrl + d pour reculer)
set sw=2
" Gestion du clipboard système
set clipboard=unnamed
" Désactiver la touche Echap (Esc)
:imap ;; Esc
:map ;; Esc
Toutes ces options ne sont pas indispensables. Testez celles qui vous semblent intéressantes, modifiez-les comme bon vous semble. Je précise qu'une bonne partie de ces options se retrouvent sur beaucoup de sites et aussi dans le très bon livre Vim pour les humains.
Installation de Pathogen
Pathogen est la première extension que nous allons installer. Pourquoi ? Parce qu'elle permet de faciliter l'installation de toutes les autres, à la manière de pip
pour Python. Elle est en tout cas conseillée dans la plupart des articles qui parlent de Vim et de ses plugins.
On crée tout d'abord les dossiers ~/.vim/autoload
et ~/.vim/bundle
. Ensuite, on télécharge le fichier pathogen.vim
avec la commande curl
:
$ mkdir -p ~/.vim/autoload ~/.vim/bundle
$ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Ensuite, on peut modifier le fichier ~/.vimrc
et ajouter l'appel à pathogen.
$ vim ~/.vimrc
"Appeler Pathogen ( https://github.com/tpope/vim-pathogen )
execute pathogen#infect()
Installation d'autres extensions
Installation du thème Solarized
Solarized est un thème pour Vim. Il permet de ne pas confondre certains caractères ( o, O, 0, i, I, l, L, ...) et aporte une colorisation sympathique de votre éditeur préféré. Grâce à l'installation de Pathogen, l'installation se fait en deux commandes et une modifications dans le fichier ~/vimrc
:
$ cd ~/.vim/bundle
$ git clone git://github.com/altercation/vim-colors-solarized.git
$ vim ~/.vimrc
"Thème Solarized ( https://github.com/altercation/vim-colors-solarized )
set background=dark
colorscheme solarized
Il peut y avoir un conflit entre les couleurs du terminal et les couleurs de Vim. Le plus simple si vous l'utilisez sur votre ordinateur, c'est de mettre le thème Solarized pour le terminal. Sur un serveur ou un ordinateur où vous ne voulez pas le thème Solarized, il faut rajouter une ligne dans ~/.vimrc
:
$ vim ~/.vimrc
"Thème Solarized ( https://github.com/altercation/vim-colors-solarized )
set background=dark
let g:solarized_termcolors=256
colorscheme solarized
Installation de Gundo
Gundo permet de naviguer dans l'historique de modifications d'un fichier de manière beaucoup plus simple que la commande undo
intégrée à vim. Pour que ce plugin puisse fonctionner, il faut installer vim-nox
et bien évidemment Pathogen.
$ sudo aptitude install vim-nox
Une fois vim-nox installé, on télécharge gundo et on le placer dans le dossier ~/.vim/bundle/
. Ensuite, on rajoute ces lignes dans ~/.vimrc
:
$ git clone http://github.com/sjl/gundo.vim.git ~/.vim/bundle/gundo
$ vim ~/.vimrc
"Gundo ( http://sjl.bitbucket.org/gundo.vim/ )
noremap <F5> :GundoToggle<CR>
Pour rendre l'historique de Gundo persistant et garder une trace de toutes les modifications réalisées sur nos fichiers avec Vim, on crée un dossier ~/.vim/gundodir
et on le renseigne dans le ~/.vimrc
:
$ mkdir -p ~/.vim/gundodir
$ vim .vimrc
"Gundo persistant
set undofile
set undodir=~/.vim/gundodir
Installation de NERDTree
NERDTree permet d'avoir un navigateur de fichiers intégré à Vim, ce qui permet de passer d'un à l'autre sans quitter votre éditeur.
$ git clone "git://github.com/scrooloose/nerdtree" ~/.vim/bundle/nerdtree
$ vim ~/.vimrc
"NERDTree ( https://github.com/pendulm/nerdtree )
noremap <F9> :NERDTreeToggle<return>
"BONUS: active NERDTree si on utilise pas d'argument pour ouvrir vim
autocmd VimEnter * if !argc() | NERDTree | endif
Vous pouvez maintenant naviguer dans votre arborescence de fichiers facilement, en appuyant sur la touche F9
dans Vim.
Autres extensions
Il y a une quantité d'autres extensions très intéressantes à installer avec Vim. Par exemple, SuperTab, Jedi-vim, ConqueTerm, ... Je détaillerai peut-être l'installation d'une ou l'autre prochainement.
Astuces diverses
Utiliser la même configuration pour l'utilisateur root (sudo) que l'utilisateur courant
Pour garder toutes les fonctionnalités des plugins installés ci-dessus quand on modifie un fichier en root
ou avec sudo
, on fait un lien symbolique de notre configuration locale dans le dossier /root/
:
#sauvegarde de votre config vim root/sudo (si elle existe) :
$ sudo mv /root/.vimrc{,.bak}
$ sudo mv /root/.vim{,.bak}
#création des liens symboliques
$ sudo ln -s /home/simon/.vimrc /root/
$ sudo ln -s /home/simon/.vim /root/
J'espère que ça vous aidera pour vous lancer dans le monde de Vim. Sinon, ça me servira au moins d'aide-mémoire. ;-)