====== Mon fichier .vimrc ====== " ##################### " # Options generales # " ##################### " ## Ne pas utiliser le mode de compatibilité vi "set nocompatible (inutile) set runtimepath+=~/.local/share/vim/ " ## Encodage " Encodage par défaut des buffers en utf-8 set encoding=utf-8 " Encodage par défaut des fichiers en utf-8 set fileencoding=utf-8 " ## Sauvegarde " Fait une copie de sauvegarde lors de l'écrasement d'un fichier set backup " Dossier contenant la sauvegarde. N'oubliez pas de le créer et de lui faire un " chmod 700 set backupdir=~/.cache/vim/backup " ## Sessions et Views set viewdir=~/.local/var/vim/views " ####################### " # Terminal, X et Unix # " ####################### " ## Pour le terminal " On transmet les 'beep' au terminal, on ne 'flash' pas set noerrorbells " Bien interpréter les caractères de contrôle nmap Od nmap Oc nmap Oa nmap Ob nmap [D nmap [C nmap [B nmap [A nmap [1;5D nmap [1;5C nmap [1;5B " ## Unixage " Path pour la recherche de fichier avec :find, :sfind et :tabfind set path=.,/usr/include,/usr/X11R6/include,/usr/local/include " Shell par défaut set shell=/bin/sh " ## X " Pas de souris, boudiou ! set mouse= " Le texte sélectionné en mode visuel est collé dans le presse-papier CLIPBOARD set clipboard=autoselect " ############################ " # Indentation et formatage # " ############################ " Taille maximale d'une ligne set textwidth=80 " Indentation gérée par les plugins plutôt que par autoindent set noautoindent filetype plugin on filetype indent on " On remplace les \t par des espaces set expandtab " Largeur de l'autoindentation set shiftwidth=2 " Largeur de l'indentation avec set softtabstop=2 " Largeur du caractère set tabstop=1 " Mappings vnoremap =$ vnoremap = nnoremap =$ nnoremap mzvip=`z " ######################### " # Coloration syntaxique # " ######################### " ## Général " Parenthèses électriques set showmatch " Coloration des caractères particuliers set list set listchars=nbsp:~,trail:¤,extends:>,precedes:<,tab:>- " Coloration syntaxique syntax on " Configuration du parsing pour la coloration syntaxique "syn sync minlines=10000 maxlines=10000 " Configuration du hilight quand vim est dans un terminal couleur "hi Normal ctermfg=gray ctermbg=black " ## Particularité des langages " Pour les fichiers en général autocmd FileType * set formatoptions=tcql nocindent comments& " Pour les fichiers c/cpp : " - numérotation automatique des lignes " - indentation top moumoutte (je ne sais plus ce que ça fait) autocmd FileType c,cpp set number cinoptions={.5s,+.5s,t0,n-1,p2s,(03s,=.5s,>1s,=1s,:1s formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,:// autocmd FileType c,cpp let Tlist_Ctags_Cmd = "/usr/bin/ctags" autocmd FileType c,cpp let Tlist_WinWidth = 50 autocmd FileType c,cpp map :TlistToggle autocmd FileType c,cpp map :!/usr/bin/ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . " Pour les fichiers shell script " - corrige la coloration syntaxique autocmd FileType sh let g:is_posix = 1 " ############# " # Recherche # " ############# " La recherche reprend au début du fichier (resp à la fin) une fois la fin (resp " le début) atteint. set wrapscan " Highlight les paterns recherchés set hlsearch " Recherche en live set incsearch " ############# " # Interface # " ############# " Complétion en mode insertion () set completeopt=longest,menuone " ## Ligne de statut et Menu " Complétion dans la barre de commande set wmnu set wildmode=list:longest,list:full " Fichiers ignorés lors de la complétion set wildignore=*.o,*.r,*.so,*.sl " Taille de l'historique de la barre de commandes set history=2000 set viminfo='100,<50,s10,h,n~/.cache/vim/info " Affichage de la position dans le fichier dans la barre de statut set ruler " Configuration de l'affichage de la date et de la position dans le fichier set rulerformat=%27(%{strftime('%a\ %e\ %b\ %I:%M\ %p')}\ %2l,%-2(%c%V%)\ %P%) " Affichage du mode dans la barre de statut set showmode " Affichage intelligent des avertissements (file format, file status, etc.) set shm=a " La ligne de statut est l'avant dernière ligne set laststatus=2 " Affichage ligne/colonne au WinLeave * set nocursorline nocursorcolumn au WinEnter * set cursorline cursorcolumn set cursorline cursorcolumn " ## Fenetres " Hauteur minimale d'une fenêtre active set winheight=1 " Hauteur minimale d'une fenêtre set winminheight=0 " Ne redimensionne pas automatiquement toutes les fenêtres lors de " l'ouverture/fermeture de l'une d'entre elles set noequalalways " Ajoute les nouvelles fenêtres en dessous ou à droite set splitbelow set splitright " ## Tabs " Raccourcis claviers pour les Tabs map :tabnew nmap :tabnext nmap :tabprevious " ############################ " # Configuration des plugin # " ############################ " ## vim-scripts "source /usr/share/vim-scripts/games/VimSokoban/sokoban.vim "source /usr/share/vim-scripts/plugin/bufexplorer.vim "source /usr/share/vim-scripts/plugin/taglist.vim " ## TOHtml " Le plugin 2html utilise le CSS let html_use_css = 1 " ## Vérification orthographique " en français, 10 suggestions let loaded_vimspell = 1 set spelllang=fr set spellsuggest=10 let spell_executable = "aspell" let spell_auto_type = '' let spell_insert_mode = 0 " ## ctags " génération automatique pour les extensions connues let generate_tags=1 " affichage dans la statusline let g:ctags_statusline=1 " Configuration OmniCpp (C++) let OmniCpp_DefaultNamespaces=["std", "_GLIBCXX_STD"] let OmniCpp_GlobalScopeSearch = 1 let OmniCpp_NamespaceSearch = 1 let OmniCpp_MayCompleteDot = 1 let OmniCpp_MayCompleteArrow = 1 let OmniCpp_MayCompleteScope = 1 let OmniCpp_ShowPrototypeInAbbr = 1 " Configuration de taglist "set tags+=~/.vim/tags/stl " ################ " # Abréviations # " ################ " ## Complétion par dictionnaire " (Ctrl-x Ctrl-k) set dictionary+=/usr/share/dict/american-english set dictionary+=/usr/share/dict/french " ## Latex let g:tex_flavor='latex' set foldenable imap it Tex_InsertItemOnThisLine set grepprg=grep\ -nH\ $* iabbrev \N \mathbb{N} iabbrev \P \mathbb{P} iabbrev \p \Sub{p} iabbrev \c \Sub{c} colo desert "elflord default torte darkblue set t_Co=16 hi Cursor ctermbg=12 hi CursorLine ctermbg=16 hi CursorColumn ctermbg=16 " Siff autocmd BufWritePost * if &diff == 1 | diffupdate | endif hi DiffChange term=reverse cterm=bold ctermbg=cyan ctermfg=black hi DiffText term=reverse cterm=bold ctermbg=gray ctermfg=black hi DiffAdd term=reverse cterm=bold ctermbg=green ctermfg=white hi DiffDelete term=reverse cterm=bold ctermbg=red ctermfg=black "set runtimepath+=/srv/gaia64/usr/share/lilypond/2.12.2/vim map :!lftp ftp.mecreant.fr -u mecreant -e 'cd www; put index.html; exit'