unixconf/configurations/.vimrc

177 lines
6.6 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

" 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 dactivation/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