""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " http://www.entuall.info/blog/public/config/vimrc " " Ce vimrc est divisé en plusieurs sections, en voici la liste : " " * Général " * Interface " * Couleurs et polices " * Indentation - Gestion des tabs/espaces " * Édition " * Folding " * Recherche " * Buffers / Fenêtres / Tabs " * Fichiers / Backups " * Sessions " * Plugins " " " Liste des racourcis clavier: " " * Touches fonctions " " F1 - Affiche l'aide en ligne " F2 - Désactive le hilight de la recherche " F3 - FuzzyFinder: navigation dans les buffers " F4 - FuzzyFinder: navigation dans le système de fichiers " F5 - Active la correction orthographique en français " F6 - Active la correction orthographique en anglais " F7 - Non utilisé " F8 - Désactive la correction orthographique " F9 - Enregistre la session en cours (attend un nom de fichier) " F10 - Charge une session (attend un nom de fichier) " F11 - Non utilisé (maximise la fenêtre) " F12 - Non utilisé " " * Déplacements entre fenêtres " " C-h - vers la gauche " C-j - vers le bas " C-k - vers le haut " C-l - vers la droite " " * Déplacements entre buffers " " TAB - buffer suivant " C-TAB - buffer précédent " " * Autres " " C-Space - Complétion intelligente " s - recharge le .vimrc " e - édites le .vimrc " t - Affiche/cache la liste des tags " l - Affiche la liste des tâches " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Général """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible set history=400 set sh=/bin/zsh set encoding=utf-8 set fileencoding=utf-8 set viminfo='20,\"500,h " Pour que le backspace fonctionne convenablement set backspace=indent,eol,start set mouse=a " la souris est activée tout le temps set mousehide " mais on la cache quand on s'en sert pas " mapleader let mapleader = "!" let g:mapleader = "!" " Recharger et éditer le .vimrc nmap s :source ~/.vimrc nmap e :e! ~/.vimrc filetype plugin indent on """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Interface """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nu " numérotation des lignes ... set numberwidth=1 " ... mais pas plus de place que nécessaire ! set ruler " Montre la position du curseur set shm=tToOIA " Formatage des messages set showmode " affiche le mode actuel set showcmd " affiche les commandes incomplètes set wildmenu " Menu pour la complétion des commandes set wildmode=list:longest set wildignore=*.o,*.bak,*.pyc,*.swp,*.jpg,*.gif,*.png " Silence ! set noerrorbells set visualbell t_vb= autocmd GUIEnter * set vb t_vb= set laststatus=2 set statusline=%<%F\ %m%r%y[%{&fenc}][%{&ff}]%=\ %n\ %l/%L,%c%V\ %P """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "" Couleurs et polices """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " La coloration syntaxique syntax on syntax sync fromstart autocmd BufEnter * :syntax sync fromstart set t_Co=256 " 256 couleurs inside (marche avec gnome-terminal debian) set background=dark "colorscheme zenburn colorscheme xoria256 if has("gui_running") set guifont=Dejavu\ Sans\ Mono\ 8 set guioptions=acei set columns=140 set lines=75 endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Indentation - Gestion des tabs/espaces """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set autoindent set smartindent " Voir :help smartindent pour comprendre le raccourci suivant :inoremap # X# set smarttab " 'shiftwidth' en début en ligne, '(soft)tabstop' ailleurs set expandtab " Utilise des espaces, et non des tabulations set tabstop=4 " Indentation de 4 espaces set softtabstop=4 " Nombre d'espaces pour une tabulation en mode édition set shiftwidth=4 " Nombre d'espaces pour indent (<<, >>) set shiftround " Les tabs sont toujours multiples de shiftwidth (<<, >>) autocmd FileType html,xhtml,xml,css,mako,smarty setl tabstop=2 autocmd FileType html,xhtml,xml,css,mako,smarty setl softtabstop=2 autocmd FileType html,xhtml,xml,css,mako,smarty setl shiftwidth=2 " Supprime automatiquement les espaces de fin de ligne autocmd BufWritePre * :%s/\s\+$//e """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Édition """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set cursorline " Montre la ligne courante set nostartofline " Conserve la colonne set showmatch " Montre le/la crochet/parenthèse/croche correspondante set matchtime=2 " pendant 2 dixièmes de secondes set matchpairs=(:),[:],{:},<:> set scrolloff=10 " Enregistrement rapide nmap w :w! " Correction orthographique nnoremap :setlocal spell spelllang=fr nnoremap :setlocal spell spelllang=en nnoremap :setlocal nospell " Réglages pour le php let php_sql_query = 1 let php_baselib = 1 let php_htmlInStrings = 1 let php_noShortTags = 1 let php_folding = 1 autocmd FileType php setlocal path=.,/usr/include,/usr/share/php,, autocmd FileType php setlocal makeprg=php\ -l\ % autocmd FileType php setlocal errorformat=%m\ in\ %f\ on\ line\ %l " Réglages pour le python let python_highlight_all = 1 autocmd FileType python setlocal textwidth=79 python << EOF def set_path_python() : import os, sys, vim for p in sys.path: if os.path.isdir(p): vim.command(r'setlocal path+=%s' % (p.replace(" ", r"\ "))) EOF autocmd FileType python python set_path_python() autocmd FileType python setlocal makeprg=python\ -c\ \"import\ py_compile;\ py_compile.compile(r'%')\" autocmd FileType python setlocal errorformat= \%A\ \ File\ \"%f\"\\\,\ line\ %l\\\,%m, \%C\ \ \ \ %.%#, \%+Z%.%#Error\:\ %.%#, \%A\ \ File\ \"%f\"\\\,\ line\ %l, \%+C\ \ %.%#, \%-C%p^, \%Z%m, \%-G%.%# " Détection des templates mako autocmd BufNewFile,BufRead *.mako setlocal ft=mako " Réglages pour le PL/SQL autocmd FileType sql setlocal syntax=plsql " Réglages pour le shell let sh_fold_enabled= 1 " La complétion intelligente autocmd FileType html setlocal omnifunc=htmlcomplete#CompleteTags autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS autocmd FileType python setlocal omnifunc=pythoncomplete#Complete autocmd FileType c setlocal omnifunc=ccomplete#Complete " Raccourci clavier pour le raccourci clavier d'omnifunc " Ils ont du croire que c'était pour emacs ... inoremap " Options pour le mode diff set diffopt=filler,iwhite,vertical """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Folding """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set foldenable " On l'active déjà  set foldlevel=100 " mais on ne folde rien que je n'ai demandé set foldmarker={,} set foldmethod=marker set foldcolumn=0 " pas de marge à gauche pour les replis " Récupére la sélection après une (dés)indentation shift vnoremap < > >gv autocmd FileType python setlocal foldmethod=indent """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Recherche """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set hlsearch " hilight les recherches set incsearch " Recherches incrèmentales set ignorecase " La recherche ne tient pas compte de la casse set smartcase " Sauf si la recherche contient des majuscules nnoremap :silent noh """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """ Buffers / Fenêtres / Tabs """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set hidden " Pour pouvoir changer de buffer sans sauvegarder set wmh=0 " Nombre minimal de lignes pour une fenêtre set splitright " Nouvelle fenêtre à droite (:vsp) " Déplacement entre les fenêtres noremap h noremap j noremap k noremap l " Buffer précédent/suivant noremap :bp! noremap :bn! """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Fichiers / Backups """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set acd " Va au répertoire du fichier en cours d'édition set autoread " recharge auto quand un fichier est modifié set autowrite " sauvegarde auto quand on quitte ou qu'on change de buffer " cf :help backup set nobackup set writebackup set backupdir=$HOME/.vim/backup set directory=$HOME/.vim/swap " Le répertoire courant est celui du fichier du buffer courant "autocmd BufEnter * :lcd %:p:h set autochdir """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Sessions """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set sessionoptions=buffers,curdir " Raccourcis clavier pour la sauvegarde/restauration des sessions nnoremap :mksession! ~/.vim/sessions/ nnoremap :so ~/.vim/sessions/ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Plugins """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Ctags let Tlist_Auto_Highlight_Tag = 0 let Tlist_Compact_Format = 0 let Tlist_Enable_Fold_Column = 0 let Tlist_Exit_OnlyWindow = 0 let Tlist_File_Fold_Auto_Close = 1 let Tlist_GainFocus_On_ToggleOpen = 1 let Tlist_Max_Submenu_Items = 20 let Tlist_Show_One_File = 0 let Tlist_Sort_Type = "name" " let Tlist_Use_Right_Window = 0 let Tlist_WinWidth = 40 let tlist_php_settings = 'php;c:class;d:constant;f:function' noremap t :TlistToggle set tags+=$HOME/.vim/tags/python.ctags " FuzzyFinder nnoremap :FuzzyFinderBuffer nnoremap :FuzzyFinderFile " Task list map l TaskList let g:tlWindowPosition = 1 let g:tlTokenList = ['FIXME','TODO','XXX'] let g:tlRememberPosition = 1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""