diff options
Diffstat (limited to 'vim/.vimrc')
-rw-r--r-- | vim/.vimrc | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/vim/.vimrc b/vim/.vimrc deleted file mode 100644 index 36f9b6b..0000000 --- a/vim/.vimrc +++ /dev/null @@ -1,374 +0,0 @@ -"" Fichier de configuration perso de VIM - -""""""""""""" -" Pathogen - Charge les plugins dans .vim/bundle -" Doit etre fait AVANT filetype plugin indent on -""""""""""""" -call pathogen#infect() - -""""""""""""" -" Configuration générale -""""""""""""" - -" Enlève la compatibilité avec le "vieux vi" -set nocompatible - -" Affiche la commande que vous êtes en train de taper, le mode en cours, et -" votre position dans le texte -set showcmd -set showmode -set ruler - -" Une petite fenêtre pour voir les complétions possibles -set wildmenu - -"" Indentation -"Auto-indentation -"set autoindent -" Indentation à la C -"set cindent -" Indentation intelligente -set smartindent - -" Copie l'indentation lors d'une nouvelle ligne -set copyindent - -" Le terminal a un fond foncé -set background=dark - -" Coloration syntaxique -syntax on - -" Détection automatique du type de fichier & activation des plugins/indentations -filetype plugin on - -" Animation lors de la fermeture des parenthèses -set showmatch - -" Retour à la ligne auto au bout de 80 lignes -set textwidth=80 - -" Utilisation de ack a la place de grep -set grepprg=ack\ -a - -" Utilisation de la souris -set mouse=a -set nopaste - -""""""""""""" -" Options d'affichage -""""""""""""" - -" Surligne la ligne courante -"set cursorline -"highlight CursorLine term=reverse cterm=reverse - -" Taille des tabs -set shiftwidth=4 -set softtabstop=4 -set tabstop=4 - -" Affiche les numéros des lignes -"set number -highlight LineNr ctermbg=black ctermfg=gray - -" Personnalisation de la barre de status -set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [Line=%04l]\ [Col=%04v]\ [%p%%] -set laststatus=2 - -" Amélioration de la lisibilité des noms des onglets -highlight TabLine term=none cterm=none -highlight TabLineSel ctermbg=darkblue - -" On ouvre le fichier avec le curseur à la position de la dernière édition -autocmd BufReadPost * silent! call s:CursorOldPosition() - -" Activation de la gestion des ouvertures/fermetures de code -set foldenable -" Affichage de "=" sur les pliages -set fillchars=fold:= -" Définition de la fonction perso d'affichage du pliage -set foldtext=MyFoldFunction() - -""""""""""""" -" Dictionnaire -""""""""""""" - -"setlocal spell spelllang=fr -set spellfile=~/.vim/spellfile.utf-8.add - -""""""""" -" Recherche -"""""""""" - -" Recherche insensible à la casse lorsque qu'auncune majuscule n'est utilisée. -" Les deux options suivantes sont nécéssaires. -set ignorecase -set smartcase -" Recherche incrémentielle -set incsearch - -" Colore les recherches en cours -set hlsearch - -"""""""""" -" Programmation -"""""""""" -set tags+=~/.vim/ctags/c -set tags+=~/.vim/ctags/c++ - -"""""""""" -" Cscope plugin : -"""""""""" - -" This tests to see if vim was configured with the '--enable-cscope' option -" when it was compiled. If it wasn't, time to recompile vim... -if has("cscope") - - """"""""""""" Standard cscope/vim boilerplate - - " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t' - set cscopetag - - " check cscope for definition of a symbol before checking ctags: set to 1 - " if you want the reverse search order. - set csto=0 - - " add any cscope database in current directory - if filereadable("cscope.out") - cs add cscope.out - " else add the database pointed to by environment variable - elseif $CSCOPE_DB != "" - cs add $CSCOPE_DB - endif - - " do NOT show msg when any other cscope db added - annoying as hell - set nocscopeverbose - - - """"""""""""" My cscope/vim key mappings - " - " The following maps all invoke one of the following cscope search types: - " - " 's' symbol: find all references to the token under cursor - " 'g' global: find global definition(s) of the token under cursor - " 'c' calls: find all calls to the function name under cursor - " 't' text: find all instances of the text under cursor - " 'e' egrep: egrep search for the word under cursor - " 'f' file: open the filename under cursor - " 'i' includes: find files that include the filename under cursor - " 'd' called: find functions that function under cursor calls - " - " Below are three sets of the maps: one set that just jumps to your - " search result, one that splits the existing vim window horizontally and - " diplays your search result in the new window, and one that does the same - " thing, but does a vertical split instead (vim 6 only). - " - " I've used CTRL-\ and CTRL-@ as the starting keys for these maps, as it's - " unlikely that you need their default mappings (CTRL-\'s default use is - " as part of CTRL-\ CTRL-N typemap, which basically just does the same - " thing as hitting 'escape': CTRL-@ doesn't seem to have any default use). - " If you don't like using 'CTRL-@' or CTRL-\, , you can change some or all - " of these maps to use other keys. One likely candidate is 'CTRL-_' - " (which also maps to CTRL-/, which is easier to type). By default it is - " used to switch between Hebrew and English keyboard mode. - " - " All of the maps involving the <cfile> macro use '^<cfile>$': this is so - " that searches over '#include <time.h>" return only references to - " 'time.h', and not 'sys/time.h', etc. (by default cscope will return all - " files that contain 'time.h' as part of their name). - - - " To do the first type of search, hit 'CTRL-\', followed by one of the - " cscope search types above (s,g,c,t,e,f,i,d). The result of your cscope - " search will be displayed in the current window. You can use CTRL-T to - " go back to where you were before the search. - " - - nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR> - nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR> - nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> - - - " Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type - " makes the vim window split horizontally, with search result displayed in - " the new window. - " - " (Note: earlier versions of vim may not have the :scs command, but it - " can be simulated roughly via: - " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR> - - nmap <C-@><C-@>ss :scs find s <C-R>=expand("<cword>")<CR><CR> - nmap <C-@><C-@>sd :scs find g <C-R>=expand("<cword>")<CR><CR> - nmap <C-@><C-@>sc :scs find c <C-R>=expand("<cword>")<CR><CR> - nmap <C-@><C-@>st :scs find t <C-R>=expand("<cword>")<CR><CR> - nmap <C-@><C-@>sf :scs find f <C-R>=expand("<cfile>")<CR><CR> - nmap <C-@><C-@>si :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> - - - """"""""""""" key map timeouts - " - " By default Vim will only wait 1 second for each keystroke in a mapping. - " You may find that too short with the above typemaps. If so, you should - " either turn off mapping timeouts via 'notimeout'. - " - "set notimeout - " - " Or, you can keep timeouts, by uncommenting the timeoutlen line below, - " with your own personal favorite value (in milliseconds): - " - "set timeoutlen=4000 - " - " Either way, since mapping timeout settings by default also set the - " timeouts for multicharacter 'keys codes' (like <F1>), you should also - " set ttimeout and ttimeoutlen: otherwise, you will experience strange - " delays as vim waits for a keystroke after you hit ESC (it will be - " waiting to see if the ESC is actually part of a key code like <F1>). - " - "set ttimeout - " - " personally, I find a tenth of a second to work well for key code - " timeouts. If you experience problems and have a slow terminal or network - " connection, set it higher. If you don't set ttimeoutlen, the value for - " timeoutlent (default: 1000 = 1 second, which is sluggish) is used. - " - "set ttimeoutlen=100 - -endif - -"""""""""" -" Fonctions d'affichage tirées de GLMF -"""""""""" - -" Affichage en inverse couleur -function! s:DisplayStatus(msg) - echohl Todo - echo a:msg - echohl None -endfunction - -"" Fonctions de gestion de la souris -"Enregistrement de l'état de la gestion de la souris -let s:mouseActivate = 1 -"Fonction permettant l'activation/désactivation de la gestion de la souris -function! ToggleMouseActivate() - if (s:mouseActivate) - let s:mouseActivate = 0 - set mouse=n - set paste - call s:DisplayStatus('Désactivation de la gestion de la souris (mode collage)') - else - let s:mouseActivate = 1 - set mouse=a - set nopaste - call s:DisplayStatus('Activation de la gestion de la souris (mode normal)') - endif -endfunction - -"" Fonction de "nettoyage" d'un fichier : -" - Suppression des ^M en fin de ligne -" - Encodage UTF-8 -function! ClearCode() - set fileformat=unix - set fileencoding=utf-8 - call s:DisplayStatus('Code nettoyé') -endfunction - -"" Déplacement de l'onglet courant vers la g ou la d -function! MoveTab(direction) - if (a:direction == 'left') - let tabNum = tabpagenr()-2 - if(tabNum < 0) - let tabNum = 0 - endif - execute 'tabm' . tabNum - else - let tabNum = tabpagenr() - execute 'tabm' . tabNum - endif -endfunction - -"" Ouverture des fichiers avec le curseur à la position de la dernière édition -function! s:CursorOldPosition() - if line("'\"") > 0 && line("'\"") <= line("$") - exe "normal g`\"" - end if -endfunction - -"" Affichage personnalisé des replis de code -function! MyFoldFunction() - let line = getline(v:foldstart) - let sub = substitute(line, '/\*\|\*/\|^\s+', '', 'g') - let lines = v:foldend - v:foldstart + 1 - return '[+] ' . v:folddashes.sub . '...' . lines . 'lignes...' . - getline(v:foldend) -endfunction - - -" Activation des templates lors de la création d'un nouveau fichier, et -" chargement des abbreviations et des commandes Vim spécifiques -function! LoadTemplate(extension, type) - if (a:type == 'all') - silent! execute '0r ' . $HOME . '/.vim/templates/' . a:extension . '.tpl' - silent! execute 'source ' . $HOME . '/.vim/templates/autocompletion.vim' - endif - " Insertion des abbreviations - silent! execute 'source ' . $HOME . '/.vim/abbreviations/' . a:extension . '.abb.vim' - " Insertion du dictionnaire - set dictionary+=$HOME . '/.vim/dictionary/' . a:extension . '.dict' - " Insertion des commandes spécifiques Vim - silent! execute 'source ' . $HOME . '/.vim/specific/' . a:extension . '.vim' -endfunction - -" Activation des templates et des chargements spécifiques en fonction de -" l'extenion du fichier chargé -autocmd BufNewFile * silent! call LoadTemplate('%:e', 'all') -autocmd BufRead * silent! call LoadTemplate('%:e', 'noTemplate') - -" Surlignement des champs à remplir dans les templates -3match Todo /<+.\++>/ - -"" Aide mémoire -" Variable indiquant l'état de l'affichage de l'aide -let helpDisplay = 0 -" Affiche/Masque l'aide -function! HelpMemory() - if g:helpDisplay == 0 - silent! topleft vertical 40split +buffer helpMemory - let g:helpDisplay = 1 - set buftype=nofile - 0read $HOME/.vim/memory.txt - highlight Memory ctermfg=white ctermbg=blue - "3match Memory /^.\+\ \+:/ - 3match Memory /<.\+>/ - else - bdelete helpMemory - let g:helpDisplay = 0 - endif -endfunction - -" Affiche/Masque les caracteres -function! DisplayChar() - set list! lcs=tab:\|_,eol:¶,nbsp:~ -endfunction - -" Surligne les lignes trop longues -" Variable indiquant l'état -let hlTooLarge = 0 -function! HlTooLarge() - if g:hlTooLarge == 0 - let g:hlTooLarge = 1 - highlight OverLength ctermbg=red ctermfg=white guibg=#592929 - match OverLength /\%81v.\+/ - else - match - let g:hlTooLarge = 0 - endif -endfunction - - -" Lecture des raccourcis claviers généraux -source $HOME/.vim/shortkeys.vim |