" set.vim {{{ "# Pas de compatibilité avec Vi (meilleur comportement) set nocompatible "# Encodage général set encoding=utf-8 "# Change le en , à la place de \ let mapleader="," "# Indentation set autoindent " Intelligente ({}, commentaires...) set smartindent " Remplace les tabulations par des espaces set expandtab " supprime un niveau d'indentation set smarttab " Affiche 2 espaces pour les tabulations set tabstop=2 " Indentation de 2 espaces set shiftwidth=2 " Arrondi à un niveau d'indentation set shiftround "# Numérotation set number "# Affichage de caractères spéciaux set list set listchars=nbsp:¬,tab:»·,trail:· "# caractères de séparation de fenêtres set fillchars+=vert:\ ,fold:\ "# Affichage de la dernière ligne, même non entière "# Affichage des caractères spéciaux sous form plutôt que ^X set display=lastline,uhex "# Affiche toujours la statusline set laststatus=2 "# Pas de sonneries set noerrorbells set novisualbell "# Limites haute et basse du curseur set scrolloff=8 "# Limites gauche et droite du curseur "set nowrap set sidescrolloff=3 set sidescroll=1 "# Recherche " Va au résultat directement set incsearch set ignorecase set smartcase " /g par défaut (remettre /g pour annuler) set gdefault " Surligne les résultats set hlsearch " et pour l'enlever : ,/ nnoremap :nohlsearch "# Menus améliorés (e.g ) set wildmenu "# Désactive les fichiers swap set noswapfile set nobackup set nowritebackup "# Correction (à activer avec set spell) set spelllang=fr,en set spellsuggest=5 "# Ne met pas le curseur au début de ligne lors du changement de buffer " (impacte aussi gg, G, H, M, L, %, d…) set nostartofline "# Effacement (backspace) fonctionnel set backspace=indent,eol,start "# Priorité aux fichiers avec un . dans l'autocomplétion " e.g : prog.c > prog set suffixes+=,, "# Méthode de cryptage (avec :X) if version >= 704 && has("patch399") set cryptmethod=blowfish2 endif "# Tilde avec motion set tildeop "# Demande une confirmation plutôt que de lever une erreur (:q, :e) set confirm "# Surligne la ligne courante set cursorline "# Autorise de changer de buffer sans sauvegarder set hidden "# Pas de support de la souris set mouse= "# share clipboad with X set clipboard+=unnamedplus "# default *.tex files ftplugin to latex file type let g:tex_flavor = "latex" " }}} " plugins.vim {{{ "# Chargement de Vundle filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'gmarik/Vundle.vim' "# Liste des plugins Plugin 'scrooloose/nerdtree' Plugin 'jeffkreeftmeijer/vim-numbertoggle' Plugin 'tpope/vim-fugitive' Plugin 'tpope/vim-dispatch' Plugin 'airblade/vim-gitgutter' Plugin 'tmhedberg/matchit' Plugin 'morhetz/gruvbox' Plugin 'bkad/CamelCaseMotion' Plugin 'Townk/vim-autoclose' Plugin 'tpope/vim-endwise' Plugin 'majutsushi/tagbar' Plugin 'jeetsukumaran/vim-buffergator' Plugin 'mbbill/undotree' Plugin 'wesQ3/vim-windowswap' Plugin 'vim-airline/vim-airline' Plugin 'tpope/vim-commentary' Plugin 'ervandew/supertab' " TODO lire :h ins-completion " TODO : retab to ? Plugin 'justmao945/vim-clang' "Plugin 'Valloric/YouCompleteMe' "Plugin 'jvoorhis/coq.vim' "Plugin 'vim-scripts/CoqIDE' " Dépendance pour coquille Plugin 'let-def/vimbufsync' Plugin 'the-lambda-church/coquille' " TODO ocaml: fichier .annot, maps (ANNOT : trouve le type du mot sous le curseur :D) " http://stackoverflow.com/questions/15514908/which-is-the-current-setup-to-use-ocaml-in-vim/17234163#17234163 " annot : require compile with -annot au BufRead,BufNewFile *.ml,*.mli compiler ocaml " a tester " ocaml : https://github.com/the-lambda-church/merlin " coq : https://github.com/the-lambda-church/coquille "Plugin 'xolox/vim-misc' " dépendance pour vim-easytags "Plugin 'xolox/vim-easytags' " idem ====> Que le fichier en cours ? Aucun intérêt si oui "Plugin 'airblade/vim-rooter' " combiné avec les tags (pour éviter d'avoir des fichiers tags dans les sous-dossiers) "Plugin 'octol/vim-cpp-enhanced-highlight' " idem "Plugin 'Xuyuanp/nerdtree-git-plugin' " => caractères moches " http://vim.wikia.com/wiki/Compiling_LaTeX_from_Vim#Automatic_LaTeX_plugin (à mettre dans ftplugin/tex ?) " Plugin 'coot/atp_vim' " TODO : cscope ? " https://en.wikipedia.org/wiki/Cscope " http://vim.wikia.com/wiki/Browsing_programs_with_tags#Comments call vundle#end() "# Remap les mouvements normaux (w, b, e) en mouvements CamelCaseMotion map w CamelCaseMotion_w map b CamelCaseMotion_b map e CamelCaseMotion_e map ge CamelCaseMotion_ge sunmap w sunmap b sunmap e sunmap ge "# Mapping pour activer/désactiver vim-autoclose nmap a :AutoCloseToggle "# Mapping pour ouvrir/fermer NERDTree nmap t :NERDTreeToggle "# Mapping pour ouvrir/fermer TagBar nmap r :TagbarToggle "# Mapping pour ouvrir/fermer Undotree nmap u :UndotreeToggle "# Mapping pour GitGutter nmap gu :GitGutterUndoHunk nmap gn :GitGutterNextHunk nmap gp :GitGutterPrevHunk "# Ouvre NERDTree automatiquement "autocmd vimenter * NERDTree " focus sur la fenêtre principale "autocmd vimenter * wincmd w " et ferme vim s'il ne reste que NERDTree autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " NERDTree à droite let g:NERDTreeWinPos = "right" "# Paramètres de buffergator " Pas de chemin absolu let g:buffergator_show_full_directory_path = 0 " Désactive tous les raccourcis d'accès let g:buffergator_suppress_keymaps = 1 " Sauf ceux-ci : nmap b :BuffergatorOpen nmap gb " Fenêtre en haut, hauteur 8 let g:buffergator_viewport_split_policy = "T" let g:buffergator_hsplit_size = 8 "# Paramètres de Airline " Pas de vérifications sur les caractères blancs let g:airline#extensions#whitespace#checks = [] "# N'active pas le completement automatiquement pour vim-clang "let g:clang_auto = 0 " TODO : plutôt regrouper par outils (coq, …) "# Paramètres de vim-commentary autocmd FileType coq setlocal commentstring=(*\ %s\ *) map :CoqLaunch map :CoqNext map :CoqUndo map :CoqToCursor "# Paramètres de coquille " Bouge le curseur let g:coquille_auto_move = 'true' "# Active l'indentation et les plugins spécifiques filetype indent on filetype plugin on " }}} " theme.vim {{{ "# Active la coloration syntaxique syntax enable "# Mode sombre set background=dark "# Thème try colorscheme gruvbox catch endtry "# Couleurs des mots mal écrits (exmaple) highlight clear SpellBad highlight SpellBad cterm=underline ctermfg=red highlight clear SpellCap highlight SpellCap cterm=underline ctermfg=blue highlight clear SpellLocal highlight SpellLocal cterm=underline ctermfg=blue highlight clear SpellRare highlight SpellRare cterm=underline ctermfg=blue " }}} " specifiques.vim {{{ "# Undo persistant if has("persistent_undo") " Crée le dossier s'il le faut silent !mkdir ~/.vim/backups > /dev/null 2>&1 set undodir=~/.vim/backups set undofile endif "# Clipboard mélangé avec celui de X if has("xterm_clipboard") set clipboard=unnamedplus endif "# Revient à la même position à la réouverture d'un fichier augroup DernierePosition autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END " }}} " mappings.vim {{{ "# Accès au début de ligne : au premier caractère non blanc " (le premier caractère est toujours accessible avec | ) nmap 0 ^ " 0 sans touche shift nmap à 0 "# Remap (= ) pour l'autocomplétion () imap "# Commande w!! pour enregistrer avec sudo "cmap w!! %!sudo tee > /dev/null % cabbrev w!! %!sudo tee > /dev/null % "# Désactive l'accès au mode Ex map Q "# Mappings pour lancer :Make (vim-dispatch) (a)synchrone map m :Make map M :Make! "# Mapping pour activer/désactiver l'affichage "visuel" " des caracètres spéciaux (e.g : tabulation) nmap l :set list! "# Mapping pour enlever tous les espaces de fin de ligne nmap s :%s/\s\+$//e:nohlsearch "# Mapping pour créer le fichier tags (nécessite ctags) nmap g :silent r!ctags -R &:echo "génération des tags lancée" "# Mapping pour aller à la faute précédente/suivante (spell) nmap (s [s nmap )s ]s "# Mapping pour aller à la marque au caractère près nmap ' ` " }}} " vim: set fen fdm=marker: