.vimrc 6.15 KB
Newer Older
1 2
" .vimrc générique mis à votre disposition
" par les gentils membres actifs du Cr@ns
Vincent Le gallic's avatar
Vincent Le gallic committed
3
" Vous pouvez l'utiliser, le redistribuer, le modifier à votre convenance.
4 5 6 7 8 9 10 11 12 13 14 15 16
" Des questions, des suggestions : {nounou,ca}@lists.crans.org
" Licence : WTFPL

" Les sections commentées par "~" sont des features qui ne sont pas activées
" par défaut. Sentez-vous libre de les décommenter pour les utiliser.

"------------------------------------------------------------------------------
"
"
" +-----------+
" | Affichage |
" +-----------+

17 18
" Affiche la commande en train d'être tapée en bas à droite de l'écran
set showcmd
19

20 21 22 23 24 25
" Affiche le nom du fichier et le chemin dans le titre du terminal
set title

"~" " N'affiche pas sur plusieurs lignes les lignes qui sont plus grandes que la fenêtre (comme sous nano)
"~" set nowrap

Fardale's avatar
Fardale committed
26 27 28
"~" " Montre brièvement la paire de parenthèse lors de sa fermeture
"~" set showmatch

29 30 31 32 33 34 35 36 37 38 39 40
"~" " Optimise la coloration de vim pour l'adapter à un terminal sombre (par défaut 'light')
"~" set background=dark

" ~~ Numérotation ~~
" Affiche 'ligne,n de caractère,colonne' en bas à droite du terminal
set ruler

" Affiche les numéros de lignes à gauche du terminal
set number

" Retire la marge à gauche sur les numéros de lignes
set numberwidth=2
41

42 43 44 45 46
"~" " Surligne la ligne du curseur
"~" set cursorline

"~" " Surligne la colonne du curseur
"~" set cursorcolumn
47 48 49 50 51 52

" +-----------------+
" | Édition de code |
" +-----------------+

" ~~ Coloration syntaxique ~~
Fardale's avatar
Fardale committed
53 54 55 56 57
" Active la coloration syntaxique pour le type de fichier détecté
if has("syntax")
  syntax on
endif

58
" ~~ Indentation et tabulation ~~
Fardale's avatar
Fardale committed
59 60 61 62
" Active les régles d'indentation pour le type de fichier détecté
if has("autocmd")
  filetype plugin indent on
endif
63

64 65
"~" " Conserve l'indentation de la ligne précédente lors d'un retour à la ligne
"~" set autoindent
66 67 68 69 70 71

"~" " Met les tabulations à 4 colonnes
"~" set tabstop=4

"~" " Indente à 4 colonnes pour les opérations de réindentation
"~" set shiftwidth=4
Fardale's avatar
Fardale committed
72
"~" set shiftwidth=4 " pour <<, >> et ==
73 74 75

"~" " Remplace les (futures) tabulations par des espaces
"~" set expandtab
Fardale's avatar
Fardale committed
76 77
"~" " On veut des tabulations dans les MakeFiles
"~" autocmd FileType make set noexpandtab tabstop=4 shiftwidth=2 nopi ci
78

79 80
"~" " Ctrl-p change entre le mode paste et nopaste
"~" set pastetoggle=<C-P>
81

82 83 84
"~" " Utilise le presse papier system (nécessite vim-gnome sous Debian)
"~" set clipboard^=unnamedplus

85 86 87 88 89
" +---------------------------+
" | Recherche et substitution |
" +---------------------------+

" ~~ Recherche ~~
90 91 92 93 94 95
" Commence la recherche dès les premiers caractères tapés (comme sous less)
set incsearch

"~" " Surligne les correspondances dans les recherches
"~" " (Exécuter nohl pour désactiver les hl (ils restent même une fois la recherche terminée))
"~" set hlsearch
96

Fardale's avatar
Fardale committed
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
"~" " Rend la recherche insensible aux majuscules et minuscules, sauf si le
"~" " motif contient une majuscule
"~" set ignorecase
"~" set smartcase

" +-----------------------------+
" | Enregistrement et fermeture |
" +-----------------------------+

"~" " Enregistre automatiquement pour certaines commandes, notament make (voir :help autowrite)
"~" set autowrite

"~" " Met à jour automatiquement les fichiers modifiés hors de vim
"~" set autoread

"~" " Pose la question au lieu d'échouer lors de la fermeture quand il y des
"~" " modifications non sauvées et que ! n'est pas précisé.
114
"~" set confirm
115 116 117 118 119

" +--------+
" | Divers |
" +--------+

120 121
" Change la taille de l'historique des commandes (par défaut 20)
set history=50
122

123 124 125
"~" " Change le comportement de la TAB-complétion : on complète au plus long
"~" " au premier appui, on affiche la liste des possibilités au deuxième
"~" set wildmode=longest,list
126

Fardale's avatar
Fardale committed
127 128 129 130 131 132 133
"~" " Active l'utilisation de la souris. (Ne marche qu'avec certains terminaux voir :help mouse)
"~" set mouse=a

"~" " Permet aux flèches droites et gauches de déplacer le curseur au début de
"~" " de la prochaine ligne ou à la fin de la précédente ligne
"~" set whichwrap=b,s,<,>,[,]

134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
" +------------------+
" | Hacks et scripts |
" +------------------+

" ~~ Hack pour mettre en rouges les espaces indésirables en fin de ligne. ~~
" ~~ Ne gêne pas la vue en mode édition. ~~
" ~~ Adapté de http://vim.wikia.com/wiki/Highlight_unwanted_spaces ~~

"~" highlight EspaceFinLigne ctermbg=red guibg=red
"~" match EspaceFinLigne /\s\+$/
"~" autocmd BufWinEnter * match EspaceFinLigne /\s\+$/
"~" autocmd InsertEnter * match EspaceFinLigne /\s\+\%#\@<!$/
"~" autocmd InsertLeave * match EspaceFinLigne /\s\+$/
"~" autocmd BufWinLeave * call clearmatches()

" ~~ Coloration du fond après n colonnes ~~
" ~~ /!\ Seulement pour vim 7.3 et plus /!\ ~~
" ~~ Adapté de http://blog.hanschen.org ~~

"~" highlight ColorColumn ctermbg=DarkGrey guibg=DarkGrey
"~" if exists('+colorcolumn')
"~"     execute "set colorcolumn=".join(range(81,335), ',')
"~" endif

Fardale's avatar
Fardale committed
158 159 160
"~" " Surligne les espaces insécables
"~" au BufEnter * hi Nbsp ctermbg=233 guibg=black
"~" au BufEnter * match Nbsp /\%uA0/
Maxime Bombar's avatar
Maxime Bombar committed
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
" ## added by OPAM user-setup for vim / base ## 93ee63e278bdfc07d1139a748ed3fff2 ## you can edit, but keep this line
let s:opam_share_dir = system("opam config var share")
let s:opam_share_dir = substitute(s:opam_share_dir, '[\r\n]*$', '', '')

let s:opam_configuration = {}

function! OpamConfOcpIndent()
  execute "set rtp^=" . s:opam_share_dir . "/ocp-indent/vim"
endfunction
let s:opam_configuration['ocp-indent'] = function('OpamConfOcpIndent')

function! OpamConfOcpIndex()
  execute "set rtp+=" . s:opam_share_dir . "/ocp-index/vim"
endfunction
let s:opam_configuration['ocp-index'] = function('OpamConfOcpIndex')

function! OpamConfMerlin()
  let l:dir = s:opam_share_dir . "/merlin/vim"
  execute "set rtp+=" . l:dir
endfunction
let s:opam_configuration['merlin'] = function('OpamConfMerlin')

let s:opam_packages = ["ocp-indent", "ocp-index", "merlin"]
let s:opam_check_cmdline = ["opam list --installed --short --safe --color=never"] + s:opam_packages
let s:opam_available_tools = split(system(join(s:opam_check_cmdline)))
for tool in s:opam_packages
  " Respect package order (merlin should be after ocp-index)
  if count(s:opam_available_tools, tool) > 0
    call s:opam_configuration[tool]()
  endif
endfor
" ## end of OPAM user-setup addition for vim / base ## keep this line