{{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