Julm
<source lang="vim"> set nocompatible " Désactive la compatibilité avec Vi set shell=zsh " Utilise le coquillage Z "set term=builtin_xterm set guipty " Exécute les commandes externe dans un tuyau et non dans un pseudo TTY set ttyfast " Connexion rapide au terminal : améliore la rapidité d'affichage set encoding=utf-8 " UCS Transformation Format 8 bits : léger et universel set nowrap " Pas de retour à la ligne sur bord de fenêtre: truc nul en prog set nowrapscan " Opposé de 'set wrapscan' lorsque l'on recherche des chaînes de caractères set noignorecase " Surtout rien d'ennuyeux set shortmess=a set visualbell set noerrorbells set visualbell t_vb= set guicursor=a:blinkon0 set textwidth=0 set nocindent set noloadplugins " Je préfère charger uniquement ce dont j'ai besoin
if !has("gui_running") " À défaut de pouvoir changer la forme du curseur " en fonction du mode de Vim, on peut changer sa couleur " en passant par des fonctions de contrôle. if &term == "rxvt-unicode" " From ECMA-48: " OSC - OPERATING SYSTEM COMMAND: " Representation: 09/13 or ESC 05/13 (this is \033] here) " OSC is used as the opening delimiter of a control string for operating system use. " The command string following may consist of a sequence of bit combinations " in the range 00/08 to 00/13 and 02/00 to 07/14. " The control string is closed by the terminating delimiter STRING TERMINATOR (ST). " The interpretation of the command string depends on the relevant operating system. " From :h t_SI: " Added by Vim (there are no standard codes for these): " t_SI start insert mode (bar cursor shape) " t_EI end insert mode (block cursor shape) let &t_SI = "\033]12;red\007" let &t_EI = "\033]12;green\007"
:silent !echo -ne "\033]12;green\007" autocmd VimLeave * :silent :!echo -ne "\033]12;green\007" endif " screen rajoute une couche qu'il faut percer. if &term == "screen" " From man screen: " Virtual Terminal -> Control Sequences: " ESC P (A) Device Control String " Outputs a string directly to the host " terminal without interpretation. " ESC \ (A) String Terminator let &t_SI = "\033P\033]12;red\007\033\\" let &t_EI = "\033P\033]12;green\007\033\\"
:silent !echo -ne "\033P\033]12;green\007\033\\" autocmd VimLeave * :silent :!echo -ne "\033P\033]12;green\007\033\\" endif endif
if !has("gui_running") set mouse=a set ttymouse=xterm2 endif
if v:version >= 500 let c_comment_strings=1 syntax on set hlsearch if version < 508 command! -nargs=+ HiLn hi link <args> else command! -nargs=+ HiLn hi def link <args> endif colors koehler hi Cursor ctermbg=green ctermfg=NONE guibg=gray70 guifg=black hi StatusLine term=bold,reverse cterm=NONE ctermfg=0 ctermbg=4 gui=bold guifg=white guibg=darkred hi StatusLineNC term=reverse cterm=underline ctermfg=4 ctermbg=0 guifg=grey45 guibg=black hi VertSplit term=reverse cterm=NONE ctermfg=0 gui=reverse guifg=grey45 hi Folded cterm=bold ctermfg=0 ctermbg=NONE guibg=NONE guifg=grey35 hi FoldColumn cterm=bold ctermfg=0 ctermbg=NONE guibg=NONE guifg=grey35 hi LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE hi Constant gui=bold guifg=purple hi Visual guifg=black guibg=yellow gui=NONE hi DiffChange term=bold ctermbg=5 guibg=#262626 hi SignColumn guibg=NONE hi SpecialKey term=bold cterm=bold ctermfg=0 gui=NONE guifg=DarkGrey hi MatchParen guibg=darkgreen guifg=NONE hi TabLine term=bold,reverse cterm=bold ctermfg=0 ctermbg=0 gui=bold guifg=blue guibg=white hi TabLineSel term=reverse cterm=bold ctermfg=white ctermbg=black gui=bold guifg=white guibg=blue hi TabLineFill term=bold,reverse cterm=bold ctermfg=4 ctermbg=0 gui=bold guifg=blue guibg=white hi Comment term=bold cterm=NONE ctermfg=darkcyan guifg=#80a0ff hi Identifier term=underline ctermfg=cyan guifg=#40ffff hi PreProc term=underline ctermfg=lightmagenta guifg=#ff80ff hi Todo term=standout ctermfg=0 ctermbg=yellow guifg=Blue guibg=Yellow hi Statement term=bold cterm=NONE ctermfg=darkyellow gui=bold guifg=#ffff60 hi PMenu ctermfg=red ctermbg=black guifg=white guibg=grey10 hi PMenuSel ctermfg=black ctermbg=red guifg=white guibg=grey10 hi PMenuSbar ctermfg=red ctermbg=black guifg=white guibg=grey10 hi OverLength cterm=underline ctermfg=red ctermbg=NONE guibg=#592929 "match OverLength /\%81v.*/ " Mise en valeur des guillemets sy match french_quotes /\(«\|»\)/ hi french_quotes ctermfg=yellow guifg=yellow sy match french_quotes_empty /« *»/ hi french_quotes_empty gui=bold guifg=green sy match quotes_up /\(“\|”\)/ hi quotes_up cterm=underline gui=bold guifg=red sy match quotes_up_empty /“ *”/ hi quotes_up_empty gui=bold guifg=blue sy match backquote /`/ hi backquote cterm=underline gui=underline
set number if v:version >= 700 "set cursorline " souligne la ligne où se trouve le curseur "au GUIEnter * " \ set cursorcolumn " souligne la colonne où se trouve le curseur hi CursorLine cterm=NONE guibg=grey10 ctermfg=NONE ctermbg=4 hi CursorColumn cterm=NONE guibg=grey10 ctermfg=NONE ctermbg=4 set numberwidth=5 endif
set popt+=syntax:y "set gfn=-bitstream-bitstream\ vera\ sans\ mono-medium-r-normal--10-100-75-75-m-60-iso8859-15 set guifont=Bitstream\ Vera\ Sans\ Mono\ 6 " Propriétaire mais belle comme une jeune fille de loin mais de près set guioptions+=mrb " Quelques ascenceurs set guioptions-=T " Pas de barre d’outils "let b:asmsyntax="asm68k" " Good ol' time :/ endif
set matchpairs+=<:> " Ajoute une correspondance aux fonctionnalités de '%' let b:match_words = '«:»,“:”' " Désactive l’affichage des parenthèses correspondantes "let loaded_matchparen = 1 so ~/.vim/plugin/matchit.vim " Extension pour gérer les fichiers compressés avec compress/gzip/bzip2 so /usr/share/vim/vimcurrent/plugin/gzip.vim " '%' étendu pour les caractères multi-bytes et les mots " Complétion de code avancée so ~/.vim/plugin/code_complete.vim let g:completekey = "<tab>" let g:template={} " NOTE: apparemment pour que ça marche il faut virer tout ce qui remplit g:template dans code_complete.vim " Common let g:template['_'] = {} let g:template['_']['dat'] = "\<c-r>=strftime(\"%c\")\<cr>" let g:template['_']['bra'] = "{\n".g:rs.g:re."\n}" let g:template['_']['par'] = "(".g:rs.g:re.")" let g:template['_']['cnv'] = "# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:" let g:template['_']['not'] = "NOTE: ".g:rs.g:re let g:template['_']['xxx'] = "XXX: ".g:rs.g:re let g:template['_']['dbg'] = "DBG: ".g:rs.g:re let g:template['_']['ant'] = g:rs.g:re " OCAML let g:template['ocaml'] = {} let g:template['ocaml']['if'] = "if ".g:rs.g:re."\<cr>then ".g:rs.g:re let g:template['ocaml']['bgn'] = "begin\<cr> ".g:rs.g:re."\<cr>\<BS>end" let g:template['ocaml']['for'] = "for ".g:rs.g:re."=".g:rs.g:re." to ".g:rs.g:re."\<cr>do ".g:rs.g:re." done" let g:template['ocaml']['mod'] = "module ".g:rs.g:re."\<cr> = ".g:rs.g:re let g:template['ocaml']['mst'] = "module ".g:rs.g:re."\<cr> = struct\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" let g:template['ocaml']['mtp'] = "module type ".g:rs.g:re."\<cr> = sig\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" let g:template['ocaml']['msg'] = "module ".g:rs.g:re."\<cr> : sig\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" let g:template['ocaml']['mat'] = "match ".g:rs.g:re." with\<cr>| ".g:rs.g:re." -> ".g:rs.g:re let g:template['ocaml']['cas'] = "| ".g:rs.g:re." -> ".g:rs.g:re let g:template['ocaml']['fcr'] = "functor (".g:rs.g:re.": ".g:rs.g:re.") ->" let g:template['ocaml']['fun'] = "fun ".g:rs.g:re." ->\<cr>\<BS> ".g:rs.g:re let g:template['ocaml']['com'] = "(* ".g:rs.g:re." *)" let g:template['ocaml']['f'] = g:rs.g:re." -> ".g:rs.g:re let g:template['ocaml']['e'] = g:rs.g:re." = ".g:rs.g:re let g:template['ocaml']['r'] = "{".g:rs.g:re."=".g:rs.g:re."}" let g:template['ocaml']['l'] = "~".g:rs.g:re.": ".g:rs.g:re let g:template['ocaml']['q'] = "?(".g:rs.g:re."=".g:rs.g:re.")" let g:template['ocaml']['str'] = "struct\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" let g:template['ocaml']['sig'] = "sig\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" let g:template['ocaml']['val'] = "val ".g:rs.g:re." : ".g:rs.g:re let g:template['ocaml']['inc'] = "include " let g:template['ocaml']['ext'] = "external ".g:rs.g:re." : ".g:rs.g:re." = \"".g:rs.g:re."\"" let g:template['ocaml']['let'] = "let ".g:rs.g:re."\<cr> : ".g:rs.g:re."\<cr>= fun ".g:rs.g:re." ->\<cr>\<BS> ".g:rs.g:re let g:template['ocaml']['and'] = "and ".g:rs.g:re." = ".g:rs.g:re let g:template['ocaml']['typ'] = "type ".g:rs.g:re."\<cr> =" let g:template['ocaml']['v'] = "module Val\<cr> = struct\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end include Val" let g:template['ocaml']['V'] = "module Val\<cr> : sig\<cr>\<BS> ".g:rs.g:re."\<cr>\<BS> end" " C let g:template['c'] = {} let g:template['c']['co'] = "/* */\<left>\<left>\<left>" let g:template['c']['cc'] = "/**< */\<left>\<left>\<left>" let g:template['c']['df'] = "#define " let g:template['c']['ic'] = "#include \"\"\<left>" let g:template['c']['ii'] = "#include <>\<left>" let g:template['c']['ff'] = "#ifndef \<c-r>=GetFileName()\<cr>\<CR>#define \<c-r>=GetFileName()\<cr>". \repeat("\<cr>",5)."#endif /*\<c-r>=GetFileName()\<cr>*/".repeat("\<up>",3) let g:template['c']['for'] = "for(".g:rs.g:re."; ".g:rs.g:re."; ".g:rs.g:re.")\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['main'] = "int main(int argc, char \*argv\[\])\<cr>{\<cr>".g:rs.g:re."\<cr>}" let g:template['c']['switch'] = "switch ( ".g:rs.g:re." )\<cr>{\<cr>case ".g:rs.g:re.":\<cr>break;\<cr>case ". \g:rs.g:re.":\<cr>break;\<cr>default :\<cr>break;\<cr>}" let g:template['c']['if'] = "if (".g:rs.g:re.")\<cr>{\<cr>".g:rs.g:re."\<cr>}" let g:template['c']['while'] = "while(".g:rs.g:re.")\<cr>{\<cr>".g:rs.g:re."\<cr>}" let g:template['c']['ife'] = "if(".g:rs.g:re.")\<cr>{\<cr>".g:rs.g:re."\<cr>} else\<cr>{\<cr>".g:rs. \g:re."\<cr>}" let g:template['c']['ifelse'] = "if(".g:rs.g:re.")\<cr>{\<cr>".g:rs.g:re."\<cr>} else\<cr>{\<cr>".g:rs. \g:re."\<cr>}" let g:template['c']['forr'] = "for(int ".g:rs.g:re." = ".g:rs.g:re."; ".g:rs.g:re." < ".g:rs.g:re."; ++".g:rs.g:re.")\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['fori'] = "for(int i = ".g:rs.g:re."; i < ".g:rs.g:re."; ++i)\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['forj'] = "for(int j = ".g:rs.g:re."; j < ".g:rs.g:re."; ++j)\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['forx'] = "for(int x = ".g:rs.g:re."; x < ".g:rs.g:re."; ++x)\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['fory'] = "for(int y = ".g:rs.g:re."; y < ".g:rs.g:re."; ++y)\<cr>{\<cr>". \g:rs.g:re."\<cr>}" let g:template['c']['forij'] = "for(int i = ".g:rs.g:re."; i < ".g:rs.g:re." ; ++i)\<cr>{\<cr>for(int j = ".g:rs.g:re." ; j < ".g:rs.g:re." ; j++)\<cr>{\<cr>". \g:rs.g:re."\<cr>}\<cr>\<cr>}" " HTML let g:template['html'] = {}
let g:template['html']['p'] = "".g:rs.g:re."
" let g:template['html']['p1'] = "\n".g:rs.g:re."\n
" let g:template['html']['div'] = "let g:template['html']['span'] = "".g:rs.g:re."" let g:template['html']['title'] = "<title>\n".g:rs.g:re."\n</title>" let g:template['html']['body'] = "<body>\n".g:rs.g:re."\n</body>" let g:template['html']['html'] = "<html>\n".g:rs.g:re."\n</html>" let g:template['html']['font'] = "".g:rs.g:re."" let g:template['html']['acronym'] = "<acronym title=\"".g:rs.g:re."\">".g:rs.g:re."</acronym>" let g:template['html']['a'] = "<a href=\"".g:rs.g:re."\">".g:rs.g:re."</a>" let g:template['html']['a1'] = "<a href=\"".g:rs.g:re."\" title=\"".g:rs.g:re."\">".g:rs.g:re."</a>" let g:template['html']['img'] = "<img src=\"".g:rs.g:re."\" />" let g:template['html']['img1'] = "<img src=\"".g:rs.g:re."\" alt=\"".g:rs.g:re."\"/>" let g:template['html']['link'] = "<link src=\"".g:rs.g:re."\" alt=\"".g:rs.g:re."\"/>"
let g:template['html']['h1'] = "Sommaire |
".g:rs.g:re."
" let g:template['html']['h2'] = "".g:rs.g:re."
" let g:template['html']['h3'] = "".g:rs.g:re."
" let g:template['html']['h4'] = "".g:rs.g:re."
" let g:template['html']['h5'] = "".g:rs.g:re."
" let g:template['html']['h6'] = "".g:rs.g:re."
"let g:template['html']['em'] = "".g:rs.g:re."" let g:template['html']['strong'] = "".g:rs.g:re."" let g:template['html']['sup'] = "".g:rs.g:re."" let g:template['html']['sub'] = "".g:rs.g:re.""
let g:template['html']['blockquote'] = "\n".g:rs.g:re."\n"
let g:template['html']['q'] = "<q>".g:rs.g:re."</q>"
let g:template['html']['br'] = "
"
let g:template['html']['php'] = "<?php ".g:rs.g:re." ?>"
let g:template['html']['com'] = ""
let g:template['html']['include'] = "include(\"".g:rs.g:re."\");"
let g:template['xhtml'] = g:template['html']
let g:template['htm'] = g:template['html']
" Vim
let g:template['vim'] = {}
let g:template['vim']['t'] = "let g:template['".g:rs.g:re."']['".g:rs.g:re."'] = ".g:rs.g:re.""
let g:template['vim']['tt'] = "\nlet g:template['".g:rs.g:re."']['".g:rs.g:re."'] = ".g:rs.g:re.""
let g:template['vim']['c'] = "\".g:rs.\"...\".g:re.\"".g:rs.g:re.""
" Bash
let g:template['sh'] = {}
let g:template['sh']['for'] = "for ".g:rs.g:re." in ".g:rs.g:re."\ndo\n".g:rs.g:re."\ndone"
let g:template['sh']['s'] = "$"
let g:template['sh']['if'] = "if [ ".g:rs.g:re." ]\nthen\n".g:rs.g:re."\nfi"
" TeX
let g:template['tex'] = {}
let g:template['tex']['main'] = "\\documentclass{article}\n\n".g:rs.g:re."\n\n\\begin{document}\n\n".g:rs.g:re."\n\n\\end{document}"
let g:template['tex']['main1'] = "\\documentclass[".g:rs.g:re."]{article}\n\n".g:rs.g:re."\n\n\\begin{document}\n\n".g:rs.g:re."\n\n\\end{document}"
let g:template['tex']['t'] = "\\title{".g:rs.g:re."}"
let g:template['tex']['title'] = "\\title{".g:rs.g:re."}"
let g:template['tex']['maketitle'] = "\\maketitle{}"
let g:template['tex']['mak'] = "\\maketitle{}"
let g:template['tex']['date'] = "\\date{".g:rs.g:re."}"
let g:template['tex']['d'] = "\\date{".g:rs.g:re."}"
let g:template['tex']['author'] = "\\author{".g:rs.g:re."\'{o}n}"
let g:template['tex']['a'] = "\\author{".g:rs.g:re."}"
let g:template['tex']['newpage'] = "\\newpage"
let g:template['tex']['new'] = "\\newpage"
let g:template['tex']['n'] = "\\newpage"
let g:template['tex']['enum'] = "\\begin{enumerate}\n".g:rs.g:re."\n\\end{enumerate}\n"
let g:template['tex']['i'] = "\\item "
let g:template['tex']['endl'] = "\\\\"
let g:template['tex']['da'] = "\\\\"
let g:template['tex']['s'] = "\\section{".g:rs.g:re."}"
let g:template['tex']['section'] = "\\section{".g:rs.g:re."}"
let g:template['tex']['it'] = "{\\it ".g:rs.g:re."}"
let g:template['tex']['delta'] = "$\\delta$"
let g:template['tex']['\$'] = "\$".g:rs.g:re."\$"
let g:template['tex']['b'] = "\\begin{".g:rs.g:re."}"
let g:template['tex']['be'] = "\\begin{".g:rs.g:re."}"
let g:template['tex']['begin'] = "\\begin{".g:rs.g:re."}"
let g:template['tex']['e'] = "\\end{".g:rs.g:re."}"
let g:template['tex']['en'] = "\\end{".g:rs.g:re."}"
let g:template['tex']['end'] = "\\end{".g:rs.g:re."}"
let g:template['tex']['itemize'] = "\\begin{itemize}\n".g:rs.g:re."\n\\end{itemize}"
let g:template['plaintex'] = {}
let g:template['plaintex'] = g:template['tex']
" Affichage des marques "let g:showmarks_textlower="\t" "let g:showmarks_textupper="\t" "let g:showmarks_include="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" "let g:showmarks_hlline_lower=1 "let g:showmarks_hlline_upper=1 "hi ShowMarksHLl guibg=DarkRed "hi ShowMarksHLu guibg=DarkBlue "so ~/.vim/plugin/showmarks.vim
"so ~/.vim/plugin/multvals.vim "so ~/.vim/plugin/genutils.vim "so ~/.vim/plugin/greputils.vim
if !exists("abraracour6_loaded")
let abraracour6_loaded = 1
map <MiddleMouse>
map! <S-Insert> <MiddleMouse>
" Tags
nmap § <C-]>
nmap ¡ <C-T>
inoremap # X<BS>#
"imap œ <ESC>
"nmap œ a
imap œ <Space>
nmap œ <Space>
nnoremap i <Up> nnoremap k <Down> nnoremap j <Left> nnoremap l <Right> xnoremap i <Up> xnoremap k <Down> xnoremap j <Left> xnoremap l <Right> nnoremap K J nnoremap J <Home>w nnoremap L <End> nnoremap î <C-U> nnoremap ï <C-U><C-U> nnoremap Î <C-D> nnoremap Ï <C-D><C-D> nnoremap Ô W nnoremap Ö 3W nnoremap Û B nnoremap Ü 3B
"inoremap <A-i> <Up> "inoremap <S-A-i> <Esc>4<Up>a "inoremap <A-k> <Down> "inoremap <S-A-k> <Esc>4<Down>a "inoremap <A-l> <Esc>Wa "inoremap <S-A-l> <Esc>3Wa "inoremap <A-j> <Esc>Ba "inoremap <S-A-j> <Esc>3Ba
" Ajout automatique de '}' inoremap { {}<Left> inoremap {<CR> {<CR>}<Esc>O inoremap {<Right> {<Right> inoremap {<End> {<End> inoremap {{ { inoremap {} {} " Ajout automatique de ')' inoremap ( ()<Left> inoremap (<CR> (<CR>)<Esc>O inoremap (<Right> (<Right> inoremap (<End> (<End> inoremap (( ( inoremap () () " Ajout automatique de '[' inoremap [ []<LEFT> inoremap [<CR> [<CR>]<Esc>O inoremap [<Right> [<Right> inoremap [<End> [<End> inoremap [[ [ inoremap [] [] " Ajout automatique de '"' inoremap " ""<Left> inoremap "" " inoremap "<Right> "<Right> inoremap "<End> "<End> inoremap "<Home> "<Home> inoremap "<Esc> "
noremap h ` " Aller à une marque noremap H :marks a-zA-Z<CR> " Affiche les marques a-zA-Z
nmap <silent> * :set hls<CR>:let @/="\\<<C-r><C-w>\\>"<CR>/<BS> " Surligne le mot sous le curseur dans tous les buffers nmap <silent> µ :set hls<CR>:let @/="<C-r><C-w>"<CR>/<BS> " Surligne la séquence sous le curseur dans tous les buffers " cf. http://vim.wikia.com/wiki/The_super_star
if (v:version >= 700) map <C-T> :tabnew<CR> nmap <tab> :tabnext<CR> nmap <C-tab> :tabprevious<CR> if !has("gui_running") " La plupart des émulateurs de terminaux envoient Tab pour C-Tab, " aussi ai-je dans mon ~/.Xresources : " URxvt*keysym.C-Tab: \033[27;5;9~ nmap <Esc>[27;5;9~ :tabprevious<CR> set showtabline=2 endif endif
" code_completion.vim silent! vunmap m silent! vunmap H inoremap <C-tab> <C-R>=SwitchRegion()<CR> "nnoremap <C-tab> <insert><C-R>=SwitchRegion()<CR>
" Répare les KP_* (le keypad) dans mon Rxvt "if !has("gui_running") " noremap <Esc>OU <kHome> " noremap <Esc>O<Bslash> <kEnd> " noremap <Esc>OZ <kPageUp> " noremap <Esc>O[ <kPageDown> " inoremap <Esc>OU <kHome> " inoremap <Esc>O<Bslash> <kEnd> " inoremap <Esc>OZ <kPageUp> " inoremap <Esc>O[ <kPageDown> " cnoremap <Esc>OU <kHome> " cnoremap <Esc>O<Bslash> <kEnd> " vnoremap <Esc>OU <kHome> " vnoremap <Esc>O<Bslash> <kEnd> " vnoremap <Esc>OZ <kPageUp> " vnoremap <Esc>O[ <kPageDown> "endif end if has("autocmd") " Permet de ne pas empiler les mêmes autocmd, j'accepte le mot astuce ! if !exists("autocmd_loaded") let autocmd_loaded = 1 filetype on filetype plugin on filetype indent on " Active les options des types de fichiers autocmd BufReadPost *.c,*.h \ sy match paren /\((\|)\)/ | \ hi paren ctermfg=yellow guifg=yellow | \ sy match croch /\(\[\|\]\)/ | \ hi croch ctermfg=blue guifg=blue | \ sy match acco /\({\|}\)/ | \ hi acco ctermfg=green guifg=green autocmd BufNewFile,BufReadPost *.mli \ set expandtab " Les tabulations dans les interfaces c'est pas trop top en fait; " surtout si elles sont générées par ce compilateur dépourvu de sens " esthétique et pratique (ocamlc) autocmd BufReadPost *.ml,*.mli,*.mll,*.mly,*.ml4 \ set ft=ocaml function GetFoldExprFromIndent() " Calcule l'indentation en fonction des tabulations " et espaces au début des lignes let lin = getline(v:lnum) let ind = strlen(matchstr(lin,"^\t*")) let spa = strlen(matchstr(lin,"^[ \t]*")) - ind let retval = ind + ((spa + 3) / 4) return retval endfunction autocmd FileType ocaml \ set noexpandtab | \ set textwidth=0 | \ syn match ocamlModuleKey "\<module\>\s*\<\(Typ\|Mod\|Val\|Arg\)\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef | \ syn region ocamlStruct matchgroup=ocamlStruct start="\<struct\>" matchgroup=ocamlEnd end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr | \ syn region ocamlSig matchgroup=ocamlSig start="\<sig\>" matchgroup=ocamlEnd end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule | \ syn region ocamlMPRestr1 matchgroup=ocamlSig start="\ssig\s\=" matchgroup=ocamlSig end="\<end\>" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule | \ syn region ocamlFuncStruct matchgroup=ocamlStruct start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlStruct end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr | \ HiLn ocamlModuleKey Keyword | \ hi ocamlModPath term=underline cterm=bold ctermfg=0 guifg=#ff80ff | \ hi ocamlStruct term=underline cterm=bold ctermfg=0 guifg=#ff80ff | \ hi ocamlSig term=underline cterm=bold ctermfg=0 guifg=#ff80ff | \ hi ocamlEnd term=underline cterm=bold ctermfg=0 guifg=#ff80ff | \ hi Include term=underline cterm=NONE ctermfg=1 guifg=#ff80ff | \ hi Statement term=bold cterm=bold ctermfg=3 gui=bold guifg=#ffff60 "\ let maplocalleader = ";" | "\ map <LocalLeader>l :call OCaml_switch(1)<CR><C-W>L | "\ map <LocalLeader>m :call OCaml_switch(0)<CR> | autocmd BufReadPre * \ let b:did_indent = 1 autocmd BufReadPost * \ set foldexpr=GetFoldExprFromIndent() | \ if &term =~ "linux" | \ set foldtext=substitute(getline(v\:foldstart),'\\t','\|·','g').'\ \ ('.(v\:foldend-v\:foldstart+1).')\ ' | \ else | \ set foldtext=substitute(getline(v\:foldstart),'\\t','⎢·','g').'\ \ ('.(v\:foldend-v\:foldstart+1).')\ ' | \ endif | \ set foldmethod=expr | \ set foldcolumn=0 | \ set foldminlines=0 autocmd Syntax ocaml \ syntax sync fromstart " Synchroniser à partir du début est plus gourmand; " mais ne pas le faire donne un rendu trop souvent " faussé par les replis autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif " J'ai dit pas de truc ennuyeux ! autocmd GuiEnter * set visualbell t_vb= " LaTeX-Suite \o/ " Ouvre le .dvi à l'emplacement désigné par la ligne où se trouve le curseur dans le .tex " et permet l'opération inverse avec Ctrl-Mouse1 \o/ " http://vim.sourceforge.net/tips/tip.php?tip_id=225 autocmd BufNewFile,BufRead *.tex,*.latex,*.sty,*.dtx,*.ltx,*.bbl \ map <buffer> <F3> :exe 'silent !xdvi -nofork -editor "vim --servername ' . v:servername . ' --remote +\%l \%f" -sourceposition ' . line (".") . expand("%:p") . " " . expand("%:r") . ".dvi &" \| redraw!<cr> | \ map <buffer> <F4> :!make -C "%:p:h" | \ map <buffer> <F5> :exe 'silent !texdoctk'<cr> " \ let g:Tex_Leader = ',' | " \ let g:Tex_Leader2 = ';' | " \ let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*' | " \ TCTarget dvi " map <F3>... j'ai eu des problèmes avec gvim v6, apparemment il exécutait mal " les commandes comprennant un programme qui se mettait en arrière plan. " Je m'en suis sorti à l'époque en enlevant le '&' et en " passant -nofork à xdvi. Ce qui me forçait à fermer xdvi pour " pouvoir éditer le .tex à nouveau ç_ç autocmd FileType lilypond \ set makeprg=lilypond\ --png\ $*\ *.ly autocmd BufReadPost *.cit \ set wrap " Dans mon ~/.zshrc : " export MANPAGER="/bin/sh -c \"sed -e 's/.�//g' | vim -R -c 'set ft=man nomod nolist' -\"" " # NOTE: using col -b instead of the sed above messes up multi-bytes characters autocmd FileType man \ exe "normal! Mg0" | \ set scrolloff=999 | \ set nonumber autocmd FileType man \ silent! nunmap K autocmd FileType man \ map <buffer> K :Man <C-R>=expand("<cword>")<CR> autocmd FileType man \ silent! nunmap <Space> autocmd FileType man \ map <Space> 5<Down>g0 autocmd FileType man \ silent! nunmap q autocmd FileType man \ map <silent> q :quit!<CR> endif endif " Tags set tags=./TAGS
" Indentation & Co.
set autoindent
set nosmartindent
set tabstop=2
set softtabstop=2
set shiftwidth=2
set smarttab
set noet
" Affiche clairement certains caractères
if &term =~ "linux"
set list listchars=nbsp:+,tab:\|·,trail:·,extends:>,precedes:<
else
set list listchars=nbsp:¬,tab:⎢·,trail:·,extends:>,precedes:<
endif
"set cinkeys=0{,0},:,0#,!<Tab>,!^F
" Replis & Co. set foldenable set foldmethod=manual set foldminlines=5 set fillchars=fold:·
" Active modeline sur les versions sécurisées de vim if (v:version == 603 && has("patch045")) || (v:version > 603) set modeline else set nomodeline endif
" Inclus $HOME dans le cdpath let &cdpath=','.expand("$HOME")
" Complétion (Ctrl+X ou Crtl+K) "set dictionary+=/usr/share/dict/words set path=.,/usr/include,/usr/local/include,,
" Permet de se repérer dans les parenthèses & Co. set showmatch " Historique des commandes set history=1042 " Historique set undolevels=542 " Ligne de status & Co. set ruler set showcmd " Hauteur de la ligne de commande set ch=1 " Affiche la ligne de status en permanence set laststatus=2 set statusline=%=%f\ %m%R\ [%l(%p%%),%c(%02B),%Y,%{&encoding}] " Affiche le premier résultat de recherche lors de la frappe de ce dernier set incsearch set backspace=indent,eol,start
" Show full tags when doing search completion set showfulltag " lazyredraw=favorise le traitement/nolazyredraw=favorise l'affichage set lazyredraw " Lorsqu'on s'approche des bordures... set scrolloff=0 set sidescroll=0 set sidescrolloff=0 " Ctrl-U et Ctrl-D déplacent d'une demi-hauteur de fenêtre set scroll=0 " Revient à la ligne sur ça set whichwrap+=<,>,[,] " Superbe menu de complétion \o/ set wildmenu set wildignore=*.o,*~,*.cmo,*.cmi,*.a,*.cmx,*.cmxa
" Aucun fichier d'échange "set noswapfile " Écrit le fichier d'échange au bout de 4,2 secondes d'inactivité set updatetime=4200 " Dossier où s'enregistre le fichier d'échange set directory=~/.tmp/vim/
" Lie le répertoire courant à celui du buffer courant set autochdir </source>