Chaque projet peut avoir des paramètres spécifiques. Il est possible de configurer vim afin qu'il charge un fichier .vimrc s'il est présent dans le répertoire courant:
Pour cela ajouter dans le fichier de configuration principal Vim de l'utilisateur ( ~/.vimrc)
set exrc set secure
Après avoir défini ces options dans le fichier ~/.vimrc, des options spécifiques au projet pourront être définies à la racine du répertoire projet.
" mise en forme et gestion des espacements
set noexpandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
" coloration syntaxique
augroup project
autocmd!
autocmd BufRead,BufNewFile *.h,*.c set filetype=c.doxygen
augroup END
La commande gf (go file) utilise les répertoires définis dans la variable path pour rechercher le chemin complet vers le fichier sous le curseur.
let &path.="src/include,/usr/include/AL,"
Pour l'autocomplétion, le plugin recommandé est “YouCompleteMe”(YCM)
Installer YCM via Vundle
YCM permet de faire de l'autocomplétion pour divers langages, ici je n'active que la famille C/C++
$ sudo apt install build-essential cmake vim-nox python3-dev cd ~/.vim/bundle/YouCompleteMe python3 install.py --clang-completer
Pour générer une arborescence et y naviguer dans une fenêtre dédiée, on peut utiliser le plugin nerdtree
Éditer le fichier .vimrc et ajouter le plugin dans la section Vundle
call vundle#begin() ... Plugin 'preservim/nerdtree' call vundle#end()
Vim intègre une commande de compilation qui par défaut appelle le programme externe make. On peut redéfinir le comportement de la commande via la variable makeprg
set makeprg=make\ -C\ ../build\ -j9
Il est également possible d'associer une touche raccourci pour déclencher l'appel de la commande:
nnoremap <F4> :make!<cr>
Ici on associe à un touche raccourci une commande externe permettant de lancer l'application compilée:
nnoremap <F5> :!./my_great_program<cr>