ソースを参照

Fusionne les fichiers (en vue de réorganisation)

Thibaut Marty 7 年 前
コミット
eb9166c47d
1 ファイル変更333 行追加13 行削除
  1. 333 13
      vimrc

+ 333 - 13
vimrc

@@ -1,13 +1,333 @@
-source ~/.vim/set.vim
-source ~/.vim/plugins.vim
-source ~/.vim/theme.vim
-source ~/.vim/specifiques.vim
-source ~/.vim/mappings.vim
-
-" TODO https://github.com/fholgado/minibufexpl.vim
-" Fix N CTRL-^
-" ou https://github.com/jlanzarotta/bufexplorer
-" ou https://github.com/ngn/vim-buf
-" ou
-  " https://bling.github.io/blog/2013/06/02/unite-dot-vim-the-plugin-you-didnt-know-you-need/ 
-  " https://github.com/Shougo/unite.vim
+" set.vim {{{
+"# Pas de compatibilité avec Vi (meilleur comportement)
+set nocompatible
+
+"# Encodage général
+set encoding=utf-8
+
+"# Change le <Leader> en , à la place de \
+let mapleader=","
+
+"# Indentation
+set autoindent
+" Intelligente ({}, commentaires...)
+set smartindent
+" Remplace les tabulations par des espaces
+set expandtab
+" <BS> 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 <hex> 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 <silent> <Leader><Space> :nohlsearch<CR>
+
+"# Menus améliorés (e.g <Tab>)
+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 <tab> to <C-X><??> ?
+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 <silent> w <Plug>CamelCaseMotion_w
+map <silent> b <Plug>CamelCaseMotion_b
+map <silent> e <Plug>CamelCaseMotion_e
+map <silent> ge <Plug>CamelCaseMotion_ge
+sunmap w
+sunmap b
+sunmap e
+sunmap ge
+
+"# Mapping pour activer/désactiver vim-autoclose
+nmap <silent> <Leader>a :AutoCloseToggle<CR>
+
+"# Mapping pour ouvrir/fermer NERDTree
+nmap <silent> <Leader>t :NERDTreeToggle<CR>
+
+"# Mapping pour ouvrir/fermer TagBar
+nmap <silent> <Leader>r :TagbarToggle<CR>
+
+"# Mapping pour ouvrir/fermer Undotree
+nmap <silent> <Leader>u :UndotreeToggle<CR>
+
+"# Mapping pour GitGutter
+nmap <silent> gu :GitGutterUndoHunk<CR>
+nmap <silent> gn :GitGutterNextHunk<CR>
+nmap <silent> gp :GitGutterPrevHunk<CR>
+
+"# 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 <Leader>b :BuffergatorOpen<CR>
+nmap gb <C-^>
+" 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 <buffer> <silent> <M-c> :CoqLaunch<CR>
+map <buffer> <silent> <M-j> :CoqNext<CR>
+map <buffer> <silent> <M-k> :CoqUndo<CR>
+map <buffer> <silent> <M-l> :CoqToCursor<CR>
+
+
+"# 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 <C-space> (= <Nul>) pour l'autocomplétion (<Tab>)
+imap <Nul> <Tab>
+
+"# 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 <Nop>
+
+"# Mappings pour lancer :Make (vim-dispatch) (a)synchrone
+map <Leader>m :Make<CR>
+map <Leader>M :Make!<CR>
+
+"# Mapping pour activer/désactiver l'affichage "visuel"
+" des caracètres spéciaux (e.g : tabulation)
+nmap <Leader>l :set list!<CR>
+
+"# Mapping pour enlever tous les espaces de fin de ligne
+nmap <Leader>s :%s/\s\+$//e<CR>:nohlsearch<CR>
+
+"# Mapping pour créer le fichier tags (nécessite ctags)
+nmap <silent> <Leader><Leader>g :silent r!ctags -R &<CR>:echo "génération des tags lancée"<CR>
+
+"# 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: