177 lines
6.6 KiB
VimL
177 lines
6.6 KiB
VimL
" 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 <F2> <Esc>:NERDTreeToggle<CR><Esc>:NERDTreeMirror<CR>
|
||
" Afficher la liste des fonctions
|
||
map <F3> <Esc>:TlistToggle<CR>
|
||
" Switcher .h/.c
|
||
map <F4> <Esc>:A<CR>
|
||
" Correction orthographique
|
||
map <F5> <Esc>:setlocal spell! spelllang=fr<CR>
|
||
" Générer les blocs de commentaires Doxygen pour la ligne d'en dessous
|
||
map <F6> <Esc>:Dox<CR>
|
||
" Exécuter PerlTidy sur l'actuel buffer
|
||
map <F7> <Esc>:%!perltidy -i 2<CR>
|
||
" Splitter horizontalement
|
||
map <C-w>- <Esc>:sp<CR>
|
||
" Splitter verticalement
|
||
map <C-w>\| <Esc>:vsp<CR>
|
||
" Aller à l'onglet suivant
|
||
nnoremap <C-Left> :tabprevious<CR>
|
||
" Aller à l'onglet précédent
|
||
nnoremap <C-Right> :tabnext<CR>
|
||
" Fermer l'onglet courant
|
||
nnoremap <C-c> :tabclose<CR>
|
||
" Ouvrir un nouvel onglet
|
||
nnoremap <C-t> :tabnew<CR>
|
||
" Exécuter CommandT (ouvrir un fichier rapidement en écrivant son nom)
|
||
noremap <leader>o <Esc>:CommandT<CR>
|
||
" Commencer l'enregistrement en GIF de Vim
|
||
nnoremap <leader>s <Esc>:ScreenRecord!<CR>:<C-c>
|
||
" Arrêter l'enregistrement
|
||
nnoremap <leader>r <Esc>:ScreenRecord<CR>:<C-c>
|
||
" Save
|
||
nnoremap <Leader>w <Esc>:w<CR>
|
||
" Copy/Paste
|
||
vmap <Leader>y "+y
|
||
vmap <Leader>d "+d
|
||
nnoremap <Leader>y "+yy
|
||
nnoremap <Leader>p "+p
|
||
nnoremap <Leader>P "+P
|
||
vnoremap <Leader>p "+p
|
||
vnoremap <Leader>P "+P
|
||
" Expand region
|
||
vmap v <Plug>(expand_region_expand)
|
||
vmap <C-v> <Plug>(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 = "<C-X><C-O>"
|
||
endfunction
|
||
|
||
" Fonction à appeler pour initialiser Vim pour un code C
|
||
function CodeC()
|
||
" Pour forcer ClangComplete à la tabulation
|
||
let g:SuperTabDefaultCompletionType = "<C-X><C-U>"
|
||
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="<c-l>"
|
||
|
||
" 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
|