vimrc 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. "# Pas de compatibilité avec Vi (meilleur comportement)
  2. set nocompatible
  3. "# Encodage général
  4. set encoding=utf-8
  5. "# Chargement de Vundle
  6. filetype off
  7. set rtp+=~/.vim/bundle/Vundle.vim
  8. call vundle#begin()
  9. Plugin 'gmarik/Vundle.vim'
  10. "# Liste des plugins
  11. Plugin 'scrooloose/nerdtree'
  12. Plugin 'scrooloose/nerdcommenter'
  13. Plugin 'ervandew/supertab'
  14. Plugin 'jeffkreeftmeijer/vim-numbertoggle'
  15. Plugin 'tpope/vim-fugitive'
  16. Plugin 'airblade/vim-gitgutter'
  17. Plugin 'tmhedberg/matchit'
  18. Plugin 'moll/vim-node'
  19. Plugin 'digitaltoad/vim-jade'
  20. Plugin 'croaker/mustang-vim'
  21. Plugin 'bkad/CamelCaseMotion'
  22. Plugin 'Townk/vim-autoclose'
  23. Plugin 'tpope/vim-endwise'
  24. call vundle#end()
  25. source ~/.vim/fonctions.vim
  26. "# Change le <leader> en , à la place de \
  27. let mapleader=","
  28. "# Indentation
  29. set autoindent
  30. " Intelligente ({}, commentaires...)
  31. set smartindent
  32. " Remplace les tabulations par des espaces
  33. set expandtab
  34. " <BS> supprime un niveau d'indentation
  35. set smarttab
  36. " Affiche 2 espaces pour les tabulations
  37. set tabstop=2
  38. " Indentation de 2 espaces
  39. set shiftwidth=2
  40. " Arrondi à un niveau d'indentation
  41. set shiftround
  42. "# Début de ligne au premier caractère non blanc
  43. map 0 ^
  44. "# Remap <C-space> (= <Nul>) pour l'autocomplétion (<Tab>)
  45. imap <Nul> <Tab>
  46. "# Numérotation
  47. set number
  48. "# Affichage de caractères spéciaux
  49. set list
  50. set listchars=nbsp:¬,tab:»·,trail:·
  51. "# Statusline
  52. " Informations git (branche +-~) :
  53. " (Vérifie que le plugin fugitive est accessible)
  54. if filereadable($HOME.'/.vim/bundle/vim-fugitive/plugin/fugitive.vim')
  55. set statusline+=%{strlen(fugitive#statusline())?'\ \ ('.fugitive#statusline()[5:-3].'\ '.HunkSummary().')\ ':''}
  56. endif
  57. " Nom du fichier
  58. set statusline+=%f%<
  59. " Encodage du fichier
  60. set statusline+=\ %{strlen(&fenc)?'<'.&fenc.'>':'<aucun>'}
  61. " Taille du fichier
  62. set statusline+=\ %{FileSize()}
  63. " Drapeau modifié, read-only
  64. set statusline+=\ %m\ %r
  65. " Séparateur gauche droite
  66. set statusline+=%=
  67. " <ligne courante>/<total>:<colonne> | <pourcents>
  68. set statusline+=%l/%L:%v\ \|\ %4P\
  69. " L'affiche toujours
  70. set laststatus=2
  71. "# Pas de sonneries
  72. set noerrorbells
  73. set novisualbell
  74. "# Limites haute et basse du curseur
  75. set scrolloff=8
  76. "# Limites gauche et droite du curseur
  77. "set nowrap
  78. set sidescrolloff=3
  79. set sidescroll=1
  80. " Revient à la même position à la réouverture d'un fichier
  81. augroup DernierePosition
  82. autocmd BufReadPost *
  83. \ if line("'\"") > 0 && line("'\"") <= line("$") |
  84. \ exe "normal! g`\"" |
  85. \ endif
  86. augroup END
  87. "# Recherche
  88. " Va au résultat directement
  89. set incsearch
  90. set smartcase
  91. " Surligne les résultats
  92. set hlsearch
  93. " et pour l'enlever : ,/
  94. nnoremap <silent> <Leader><Space> :nohlsearch<CR>
  95. "# Désactive les fichiers swap
  96. set noswapfile
  97. set nobackup
  98. set nowritebackup
  99. "# Undo persistant
  100. if has("persistent_undo")
  101. " Crée le dossier s'il le faut
  102. silent !mkdir ~/.vim/backups > /dev/null 2>&1
  103. set undodir=~/.vim/backups
  104. set undofile
  105. endif
  106. "# Clipboard mélangé avec celui de X
  107. if has("xterm_clipboard")
  108. set clipboard=unnamedplus
  109. endif
  110. "# Commande w!! pour enregistrer avec sudo
  111. "cmap w!! %!sudo tee > /dev/null %
  112. cabbrev w!! %!sudo tee > /dev/null %
  113. "# Correction (à activer avec set spell)
  114. set spelllang=fr,en
  115. set spellsuggest=5
  116. "# Pas de repliement
  117. set nofoldenable
  118. "# Effacement (backspace) fonctionnel
  119. set backspace=indent,eol,start
  120. "# Désactive l'accès au mode Ex
  121. map Q <Nop>
  122. "# Remap les mouvements normaux (w, b, e) en mouvements CamelCaseMotion
  123. map <silent> w <Plug>CamelCaseMotion_w
  124. map <silent> b <Plug>CamelCaseMotion_b
  125. map <silent> e <Plug>CamelCaseMotion_e
  126. sunmap w
  127. sunmap b
  128. sunmap e
  129. "# Active l'indentation et les plugins spécifiques
  130. filetype indent on
  131. filetype plugin on
  132. "# Thème
  133. try
  134. colorscheme mustang
  135. catch
  136. endtry
  137. "# Active la coloration syntaxique
  138. syntax enable
  139. "# Couleur pour GitGutter
  140. highlight SignColumn ctermbg=232
  141. "# Mapping pour activer/désactiver vim-autoclose
  142. nmap <silent> <leader>a :AutoCloseToggle<CR>