" -------------------------------------------------------------------------------------------------- " | Fichiers de configuration de vim | " | Emplacement : ~/.vimrc | " | Auteur : Gardouille | " | Derniers changements : emplacement des couleurs | " | Date : 2011/06/27 | " | Version : 0.8 | " | Ajout de la configuration pour les plugins: Nerd_commenter, nerd_tree | " -------------------------------------------------------------------------------------------------- """""""""""""""""""""""""""""""""""""""""""""""" " Diverses options """""""""""""""""""""""""""""""""""""""""""""""" set background=dark " fond sombre " Thème de couleur par défaut: "colorscheme peachpuff " Autre thèmes possibles: desert, delek, zellner, torte, elflord, evening, pablo, morning, peachpuff, blue, murphy, ron, zellner, darkblue, desert, koehler, and shine colorscheme torte "liste des couleur : ll /usr/share/vim/vim71/colors/ syntax enable " activation de la coloration syntaxique "set number " numérotation des lignes "set autoindent " indentation automatique avancée "set smartindent " indentation plus intelligente set backspace=indent,eol,start " autorisation du retour arrière set bs=2 " redéfinition du backspace set history=50 " fixe l'historique à 50 commandes maxi set ruler " affiche la position courante au sein du fichier set showcmd " affiche la commande en cours set shiftwidth=2 " taille des tabulations (nb d'espace) set softtabstop=2 " taille des tabulations mixtes (tabulations et espaces) set tabstop=2 " taille des tabulations à l'affichage (nb d'espace) set expandtab " transforme les tabulations en espaces set showmatch " vérification présence (, [ ou { à la frappe de ), ] ou } filetype plugin indent on " détection automatique du type de fichier "autocmd FileType text setlocal textwidth=72 " les fichiers de type .txt sont limités à 72 caractères par ligne set fileformats=unix,mac,dos " gestion des retours chariot en fonction du type de fichier set hlsearch " surligne les résultats de la recherche " set nohls " ne pas surligner les résultats de la recherche set incsearch " recherche en même temps que la saisie set ignorecase " ne pas prendre en compte la casse pour les recherches "set noic " Prendre en compte la casse pour les recherches set smartcase " recherche respectueuse de la case quand une majuscule est saisie set cursorline " met en avant la ligne courante "set cursorcolumn " met en avant la colonne courante set so=2 " Place le curseur sur la 2ème ligne lors de mouvements verticaux set pt= " évite la double indentation lors de c/c " Placer les fichiers .swp dans un autre répertoire if !filewritable ($HOME."/.vim/tmp") " Si le répertoire n'existe pas call mkdir($HOME."/.vim/tmp", "p") " Création du répertoire temporaire endif set directory=$HOME/.vim/tmp """""""""""""""""""""""""""""""""""""""""""""""" " Touche MapLeader : """""""""""""""""""""""""""""""""""""""""""""""" " Activation de la touche mapleader qui permet de faire des combinaisons " supplémentaires let mapleader = "," let g:mapleader = "," " Sauvegarde rapide nmap w :w! nmap q :wq " Édition rapide de vimrc map e :e! ~/.vimrc " Lorsque vimrc est édité, le recharger autocmd! bufwritepost vimrc source ~/.vimrc " Navigation dans les buffeurs map t :bp map s :bn """""""""""""""""""""""""""""""""""""""""""""""" " Mapping : """""""""""""""""""""""""""""""""""""""""""""""" "Désactive le surlignage des résultats d'une recherche en utilisant CTRL+N nnoremap :noh "Associe 'jj' à la touche "map jj o "Ajoute une ligne avant le curseur sans passer en mode insertion nnoremap o "Ajoute une ligne après le curseur sans passer en mode insertion map O """""""""""""""""""""""""""""""""""""""""""""""" " Plugins : """""""""""""""""""""""""""""""""""""""""""""""" " Nerd_tree - Permet d'afficher une arborescence du répertoire courant. " http://ngressier.developpez.com/articles/vim/vim-plugin-nerdtree/ " Raccourcis de la commande avec F10 map :NERDTreeToggle " Placer le volet à droite let NERDTreeWinPos='right' " Nerd_commenter - Mettre en commentaire une ligne " Disponible dans le paquet vim-scripts " Commentaire basique, mais permet également de décommenter (Attention, il y a " un espace avec le C!) map c imap " Commentaire plus sexy, mais impossible à décommenter map cs " Note, utilisé le mode visuel ligne SHIFT+V ou le mode visuel bloc CTRL+V " SuperTab offre une auto-complétion amélioré. " http://www.vim.org/scripts/script.php?script_id=182 " Permet notamment de compléter avec des noms de variables déjà définies. " Pas de configuration spécifiques """""""""""""""""""""""""""""""""""""""""""""""" " Paramétrage de exuberant-ctags "http://ngressier.developpez.com/articles/vim/vim-plugin-taglist/#LC "Indispensable pour le bon fonctionnement du plugin Taglist """"""""""""""""""""""""""""""""""""""""""""""""" let Tlist_Ctags_Cmd = '/usr/bin/ctags' """""""""""""""""""""""""""""""""""""""""""""""" " Paramétrage du plugin Taglist "http://ngressier.developpez.com/articles/vim/vim-plugin-taglist/#LD "Indispensable pour la deuxième status line définie dans ce fichier "Si première utilisation, faire un vim dans le dossier ~/.vim/doc/ et faire ":helptags" pour activer le plugin """""""""""""""""""""""""""""""""""""""""""""""" "Mappage de l'ouverture et fermeture de la fenêtre des tags avec la touche F8 nnoremap :TlistToggle "map :TlistToogle let Tlist_WinWidth = 50 let Tlist_Process_File_Always = 1 " activation permanente du plugin pour la barre de statut let Tlist_Exit_OnlyWindow = 1 " vim se ferme si il reste uniquement la fenêtre des tags "let Tlist_Use_Right_Window = 1 " affiche les tags sur le côté droit de l'écran " test """""""""""""""""""""""""""""""""""""""""""""""" " Positionner le curseur à l'emplacement de la "dernière édition """""""""""""""""""""""""""""""""""""""""""""""" set viminfo='10,\"100,:20,%,n~/.viminfo au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif " Differences depuis le debut de l'edition "if !exists(":DiffOrig") " La commande suivante permet de comparer le fichier avec son ancien etat " (au moment de l'ouverture dans Vim). "command DiffOrig vertical new | set buftype=nofile | r # | 0d_ | "diffthis "\| wincmd p | diffthis " Mapping de la commande precedente "noremap ch :DiffOrig "endif """""""""""""""""""""""""""""""""""""""""""""""" " Chargement des types de fichiers """""""""""""""""""""""""""""""""""""""""""""""" autocmd BufEnter *.txt set filetype=text """""""""""""""""""""""""""""""""""""""""""""""" " Map pour se déplacer dans les onglets """""""""""""""""""""""""""""""""""""""""""""""" map gt imap """"""""""""""""""""""""""""""""""""""""""""""""""" " Dictionnaire français "Liste des propositions par CTRL-X_CTRL-K """"""""""""""""""""""""""""""""""""""""""""""""""" set dictionary+=/usr/share/dict/french """"""""""""""""""""""""""""""""""""""""""""""""""" " Correction orthographique "-------------En mode INSERTION :------------------ "Liste des propositions : CTRL-X_s "-------------En mode COMMANDE :------------------- "Liste des propositions : z= "Prochain mot mal orthographié : ]s "Précédent mot mal orthographié : [s "Ajouter un mot au dictionnaire: zg """"""""""""""""""""""""""""""""""""""""""""""""""" if has("spell") " La commande z= affiche 10 suggestins. En mode insertion: CRTL-X_s set spellsuggest=10 " On règle les touches d'activation manuelle de la correction orthographique noremap ,sf :setlocal spell spelllang=fr noremap ,se :setlocal spell spelllang=en noremap ,sn :setlocal nospell " On active automatiquement le mode spell pour les fichiers texte et LaTeX autocmd BufEnter *.txt,*.tex set spell " On applique le dictionnaire français pour tous les types de fichiers autocmd BufEnter * set spelllang=fr endif " Choix de la langue de l'aide set helplang=fr " Liste des abbréviations textes: iabbrev cad c'est-à-dire iabbrev svp s'il-vous-plaît iabbrev stp s'il-te-plaît iabbrev pcq parce que """"""""""""""""""""""""""""""""""""""""""""""""""" " Modification de la barre de statut """"""""""""""""""""""""""""""""""""""""""""""""""" set laststatus=2 " Affiche la barre de statut quoi qu'il en soit (0 pour la masquer, 1 pour ne l'afficher que si l'écran est divise) if has("statusline") " set statusline=\ %f%m%r\ [%{strlen(&ft)?&ft:'aucun'},%{strlen(&fenc)?&fenc:&enc},%{&fileformat},ts:%{&tabstop}]%=%l,%c%V\ %P set statusline=%t%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [FENC=%{&fileencoding}]\ [POS=%04l,%04v]\ [%P]\ [LEN=%L]\ [TAG=%{Tlist_Get_Tagname_By_Line()}] " FORMAT TYPE ENCODAGE POSITION(ligne,colonne) " %FICHIER NOMBRE DE LIGNE DU FICHIER LISTE DES TAG elseif has("cmdline_info") set ruler " Affiche la position du curseur en bas a gauche de l'écran endif """"""""""""""""""""""""""""""""""""""""""""""""""" " Création et centralisation des backups """"""""""""""""""""""""""""""""""""""""""""""""""" if !filewritable ($HOME."/.vim/backup") " Si le répertoire n'existe pas call mkdir($HOME."/.vim/backup", "p") " Création du répertoire de sauvegarde endif " On définit le répertoire de sauvegarde set backupdir=$HOME/.vim/backup " On active le comportement précedemment décrit set backup " Undo persistant " !!! Attention à la taille des fichiers de sauvegarde !!! set undodir=~/.vim/undodir " répertoire où seront stockés les modifications set undofile " activation du undo persistant set undolevels=100 " nombre maximum de changements sauvegardés set undoreload=100 " nombre maximum de lignes sauvegardées