{{tag>software vim dev c edi todo}}
====== Vim comme EDI C ======
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.
===== Paramètres généraux =====
" 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
===== Définir la variable path =====
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,"
===== Auto complétion =====
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
===== Arborescence =====
Pour générer une arborescence et y naviguer dans une fenêtre dédiée, on peut utiliser le plugin [[https://github.com/preservim/nerdtree|nerdtree]]
Éditer le fichier .vimrc et ajouter le plugin dans la section Vundle
call vundle#begin()
...
Plugin 'preservim/nerdtree'
call vundle#end()
* Redémarrer vim et lancer installer le nouveau plugin via la commande **%%:PluginInstall%%**.
* Pour afficher la fenêtre d'arborescence du projet, depuis le mode commande **%%:NERDTree%%**.
* Depuis la fenêtre d'arborescence, frapper ? pour afficher l'aide, les commandes et raccourcis disponibles.
===== Configurer la commande de compilation =====
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 :make!
===== Configurer la commande d’exécution =====
Ici on associe à un touche raccourci une commande externe permettant de lancer l'application compilée:
nnoremap :!./my_great_program
===== Références =====
* https://www.alexeyshmalko.com/2014/using-vim-as-c-cpp-ide/
* https://github.com/ycm-core/YouCompleteMe/blob/master/README.md#installation