vimrc 3.0 KB

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