" za pour les folds " ctrl + n pour le multi curseur " crtl + ] pour aller à la définition de fonction " ctrl + t pour revenir à avant ctrl + ] " gf pour suivre le fichier sous le curseur set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle, required Plugin 'gmarik/vundle' Plugin 'tpope/vim-fugitive' Plugin 'vim-scripts/a.vim' " Plugin 'Rip-Rip/clang_complete' Plugin 'vim-scripts/DoxygenToolkit.vim' Plugin 'ervandew/supertab' Plugin 'emezeske/manpageview' Plugin 'terryma/vim-multiple-cursors' Plugin 'scrooloose/nerdcommenter' Plugin 'scrooloose/nerdtree' Plugin 'vim-perl/vim-perl' Plugin 'c9s/perlomni.vim' Plugin 'scrooloose/syntastic' Plugin 'wincent/command-t' Plugin 'vim-scripts/taglist.vim' " Plugin 'Raimondi/delimitMate' " Plugin 'WolfgangMehner/vim-plugins' Plugin 'SirVer/ultisnips' Plugin 'honza/vim-snippets' Plugin 'chrisbra/Replay' " Plugin 'fatih/vim-go' Plugin 'terryma/vim-expand-region' filetype plugin indent on syntax enable " Coloration syntaxique set t_Co=256 " Nombre de couleurs différentes highlight NbSp ctermbg=5 match NbSp /\%xa0/ set ai " Activer l'indentation automatique set si " Activer l'indentation intelligente set showcmd " Affiche (partiellement) la commande dans la barre de statut set showmatch " Afficher les brackets qui correspondent set ignorecase " Recherche insensible à la casse set incsearch " Recherche insensible à la casse set mouse=a " Activer la souris pour tous les modes set number " Afficher les numéros de ligne set shiftwidth=2 " Une tabulation = 4 espaces set tabstop=2 set expandtab " Transformer les tabulations en espaces set ruler " Afficher la position courante set smarttab " Être intelligent dans l'utilisation des tabluations set fileencoding=utf-8 " Encoder en UTF-8 set shell=zsh " Votre shell set wildmenu " Completion dans l'interface set wildmode=list:longest " Comportement de la complétion semblable à celui d'un shell set wildignore=*.o,*~ "Ignorer les fichiers temporaires et objets set foldmethod=indent " Méthode pour cacher du code (donc selon l'indentation) set nofoldenable " Ne rien cacher par défaut set background=dark " Autocomplétion intelligente set omnifunc=syntaxcomplete#Complete " Désactiver les commentaires auto autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o " Touche bonus que l'on peut utiliser pour mapper certaines commandes let mapleader = "," " Afficher arborescence map :NERDTreeToggle:NERDTreeMirror " Afficher la liste des fonctions map :TlistToggle " Switcher .h/.c map :A " Correction orthographique map :setlocal spell! spelllang=fr " Générer les blocs de commentaires Doxygen pour la ligne d'en dessous map :Dox " Exécuter PerlTidy sur l'actuel buffer map :%!perltidy -i 2 " Splitter horizontalement map - :sp " Splitter verticalement map \| :vsp " Aller à l'onglet suivant nnoremap :tabprevious " Aller à l'onglet précédent nnoremap :tabnext " Fermer l'onglet courant nnoremap :tabclose " Ouvrir un nouvel onglet nnoremap :tabnew " Exécuter CommandT (ouvrir un fichier rapidement en écrivant son nom) noremap o :CommandT " Commencer l'enregistrement en GIF de Vim nnoremap s :ScreenRecord!: " Arrêter l'enregistrement nnoremap r :ScreenRecord: " Save nnoremap w :w " Copy/Paste vmap y "+y vmap d "+d nnoremap y "+yy nnoremap p "+p nnoremap P "+P vnoremap p "+p vnoremap P "+P " Expand region vmap v (expand_region_expand) vmap (expand_region_shrink) " Action automatique pour les fichier de type C autocmd FileType c call CodeC() " Action automatique pour les fichier de type Perl autocmd FileType perl call CodePerl() " Fonction à appeler pour initialiser Vim pour un script Perl function CodePerl() " Utiliser l'omnicompletion pour la tabulation let g:SuperTabDefaultCompletionType = "" endfunction " Fonction à appeler pour initialiser Vim pour un code C function CodeC() " Pour forcer ClangComplete à la tabulation let g:SuperTabDefaultCompletionType = "" endfunction " Correction orthographique setlocal spell spelllang=fr " Correcteur orthographique français set nospell " Par défaut, pas de correction orthographique autocmd BufEnter,BufNewFile,BufRead *.txt set spell " Activation pour les .txt autocmd BufEnter,BufNewFile,BufRead *.txt let g:spellactive=1 " Ajustement pour la fonction d’activation/desactivation de la correction orthographique " UltiSnip - Lister les snippets disponible let g:UltiSnipsListSnippets="" " Complétion set pumheight=10 " Taille du menu d'autocomplétion set completeopt=menu,longest let g:clang_complete_auto=0 let g:clang_snippets=1 " Utiliser un moteur de snippets pour les placeolders let g:clang_snippets_engine='ultisnips' " Spécification du moteur de snippets que l'on utilise let g:clang_auto_select=1 " Sélectionner la complétion vide par défaut " Vérification syntaxique (du code, pas du français :p ) let g:syntastic_enable_signs=1 " Activer les signes dans la barre d'erreur à gauche let g:syntastic_enable_perl_checker=1 " Réactiver l'analyse pour le Perl (désactivé car risque de sécurité sur les scripts Perl étrangers) let g:syntastic_perl_checkers=['perl'] let g:syntastic_check_on_open=1 " Analyser le fichier à l'ouverture let g:syntastic_c_include_dirs = [ '../include', 'include', '../INC', 'INC', '../inc', 'inc' ] " Spécifications des dossier d'inclusion perso " Afficher la syntaxe et les couleurs pour les commentaires doxygen let g:load_doxygen_syntax=1 let g:doxygen_enhanced_colour=1 " Sauvegarder et restaurer les folds (fold = cacher le code entre accolades) " Par défaut lorsque vous cachez un bloc de code, celui-ci n'est pas sauvegardé autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent loadview " Pour changer entre le .c/.h, on spécifie nos dossiers d'inclusions persos let g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../SRC,sfr:../include,sfr:../inc,sfr:../INC' " Enregistrer les actions faites dans Vim dans une vidéo ou GIF let g:replay_record=1