Dominique.fournier38.fr Imprimer cette page

Document Mes Confs

Page d'accueil
Sommaire | Précédent | Suivant
Mon .vimrc (Télécharger)
" Configuration file for vim

" Ce fichier peut etre telecharge sur 
" wget -N -nv http://dominique.fournier.homedns.org/partage/.vimrc

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible                " Use Vim defaults instead of 100% vi compatibility
set backspace=indent,eol,start    " more powerful backspacing

if has("autocmd")
 " Enabled file type detection
 " Use the default filetype settings. If you also want to load indent files
 " to automatically do language-dependent indenting add 'indent' as well.
 filetype plugin on
endif " has ("autocmd")

" modeline est un bug de securite, mais pratique.
" http://docstore.mik.ua/orelly/unix/upt/ch30_19.htm
" Dans les fichiers bind, la modline doit etre la derniere pour etre active
set modeline

" Some Debian-specific things
augroup filetype
  au BufRead reportbug.*        set ft=mail
  au BufRead reportbug-*        set ft=mail
augroup END

augroup filetype
  au BufRead *.css set expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80 cinoptions=J1,j1
augroup END

augroup filetype
  au BufRead *.html set expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80 cinoptions=J1,j1
augroup END

augroup filetype
  au BufRead *.js set expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80 cinoptions=J1,j1
augroup END

augroup filetype
  au BufRead *.less set expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80 cinoptions=J1,j1
augroup END

augroup filetype
  " Si on a un code PHP, on va traiter le cas make (verification de syntaxe si on tape make)
  " J'ai aussi ajoute les tabstop,shiftwidth,softtabstop pour pouvoir indenter a 2 espaces facilement
  " l'autoindent permet, lors des retours chariots de revenir a la meme place d'indentation
  au BufRead *.php set makeprg=php\ -l\ % errorformat=%m\ in\ %f\ on\ line\ %l expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80
augroup END

augroup filetype
  " Si on est dans un code en c ou cpp, on met les tabs avec des espaces
  au BufRead *.cpp set expandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END
augroup filetype
  " Si on est dans un code en c ou cpp, on met les tabs avec des espaces
  au BufRead *.c set expandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END
augroup filetype
  " Si on est dans un code en c ou cpp, on met les tabs avec des espaces
  au BufRead *.h set expandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END

augroup filetype
  au BufRead *.scss set expandtab tabstop=2 shiftwidth=2 softtabstop=2 textwidth=80 cinoptions=J1,j1
augroup END

autocmd BufRead,BufNew *.md set filetype=markdown
" Now we set some defaults for the editor 
"set smarttab sts=8 shiftwidth=8 ts=8
"set smartindent
"set cindent
"set cino=f2
"set expandtab          " Transforme les Tabs en espaces...
"set autoindent        " always set autoindenting on
"set autoindent shiftwidth=8 
set textwidth=80        " Don't wrap words by default
set nobackup        " Don't keep a backup file
set viminfo='20,\"50    " read/write a .viminfo file, don't store more than
            " 50 lines of registers
set history=50        " keep 50 lines of command line history

" Suffixes that get lower priority when doing tab completion for filenames.
" These are files we are not likely to want to edit or read.
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc

" Make p in Visual mode replace the selected text with the "" register.
vnoremap p <Esc>:let current_reg = @"<CR>gvdi<C-R>=current_reg<CR><Esc>

" Syntax highlighting
syntax on
" :silent! colorscheme autumn

" Debian uses compressed helpfiles. We must inform vim that the main
" helpfiles is compressed. Other helpfiles are stated in the tags-file.
set helpfile=$VIMRUNTIME/doc/help.txt

" The following are commented out as they cause vim to behave a lot
" different from regular vi. They are highly recommended though.
set showcmd        " Show (partial) command in status line.
set showmatch        " Show matching brackets.
"set ignorecase        " Do case insensitive matching
"set incsearch        " Incremental search
set autowrite        " Automatically save before commands like :next and :make
set paste               " Empeche lautoindent qd on colle a la souris ATTENTION :a placer APRES toute commande d'autoindent !!
set fileencoding=utf-8

set hlsearch            " Colorie lors des recherche toutes les occurences

set ruler        " show the cursor position all the time
highlight DiffAdd ctermfg=0 ctermbg=3    " colore les lignes de Diff en orange
highlight MatchParen cterm=bold ctermbg=7

" Pour que le cw (change word) prenne le $ dans les variables des codes PHP, on
" rajoute le  dollar a la liste par defaut :
set iskeyword=@,48-57,_,192-255,$

set scrolloff=5         " Affiche les 5 lignes suivantes avant d'arriver en bas de page

function! BeautifyCodeDom()
  " rend un code beau (au sens de Dom)
  " doit etre appelle par :call BeautifyCodeDom()

  " Les espaces seuls en fin de lignes sont supprimes
  :silent! %s/[ \t]*$//

  " Les parentheses ouvrantes doivent etre precedees de espace SAUF si le 
  " caractere precedent est une parenthese. Si il y a plusieurs espaces, on n'en
  " laisse qu'un.
  :silent! %s/\([^(]\)(/\1 (/g
  :silent! %s/\s*(/ (/g
  " La parenthese ouvrante doit etre collee au texte qui la suit
  :silent! %s/(\s*/(/g

  " La parenthese fermante doit etre collee au texte qui la precede
  :silent! %s/\s*)/)/g

  " Les point-virgules doivent avoir un espace avant et un espace apres SAUF 
  " si il est en fin de ligne. Si il y a plusieurs espaces, on n'en laisse qu'un
  " En fin de ligne on ne met pas non plus l'espace avant le point virgule
  :silent! %s/;/ ; /g
  :silent! %s/\s*;\s*/ ; /g
  :silent! %s/\s*;\s*$/;/

  " Les fleches des proprietes sont espacees
  :silent! %s/->/ -> /g
  :silent! %s/\s*->\s*/ -> /g

  " Il doit y avoir un espace avant et un espace apres un egal, sauf si c'est
  " un autre egal ou un point d'exclamation !== ou === ou =>
  :silent! %s/=/ = /g
  :silent! %s/\s*=\s*/ = /g
  :silent! %s/! =/!=/g
  :silent! %s/= =/==/g
  :silent! %s/!  =  =/!==/g
  :silent! %s/=  =  =/===/g
  :silent! %s/= >/=>/g

  " Il doit y avoit un espace apres la virgule, sauf fin de ligne (efface par
  " le cas general
  :silent! %s/,/, /g
  :silent! %s/,\s*/, /g

  " Le texte apres l'accolade ouvrante doit etre indentes de 2 espaces (sauf
  " si il n'y a deja rien apres l'accolade)
  " Place le texte apres l'accolade a la ligne d'en dessous
  :silent! %s/\(\s*\){\s*\([^$].*\)/\1{ \1  \2/

  " Indente l'accolade ouvrante sur le texte precedent si elle se trouve sur la
  " meme ligne que lui, sauf si ca genere une ligne blanche.
  " Place l'accolade a la ligne d'en dessous
  " \1 est le nombre d'espace avant le texte
  " \2 le texte (par exemple : function (...
  " on place l'accolade a la ligne d'en dessous avec \1 espaces sauf si 
  " \2 est vide (sinon on cree une ligne blanche)
  " :silent! %s/^\(\s*\)\([^$].*\){/\1\2 \1{/ MARCHE POSSS Met des lignes blanches partout

  " On met l'accolade fermante seule sur une ligne si elle n'y est pas.
  ":silent! %s/^\(\s*\)\([^$].*\)?}/\1\2 \1}/MARCHE PASSS !!!

  " Les espaces seuls en fin de lignes sont supprimes
  :silent! %s/[ \t]*$//
endfun

" Place le fichier temporaire de swap dans /tmp
:set dir=/tmp
" Affiche les caractères non visibles
:set listchars=nbsp:¬,tab:>-,extends:»,precedes:«,trail:•
:set list

" Se place a la derniere ligne editee
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") |  exe "normal g'\"" | endif            

" Manage the folding by marker
:set foldmethod=marker

Suggestions : D. FOURNIER - Dernière mise à jour de la page : 24/08/2009 15:23