Vimrc

From AleikoumWiki

(Difference between revisions)
Jump to: navigation, search
m
Line 160: Line 160:
" Fonction 5 : recuperer le dernier lastmodified du fichier courant
" Fonction 5 : recuperer le dernier lastmodified du fichier courant
function! FileTime()
function! FileTime()
-
let filename=tolower(expand("%:p"))
+
let filename=tolower(expand("%:p"))
-
let msg=strftime("%Y/%m/%d-%H:%M:%S",getftime(filename))
+
let msg=strftime("%Y/%m/%d-%H:%M:%S",getftime(filename))
-
return msg
+
return msg
endf
endf
</pre>
</pre>

Revision as of 11:46, 20 February 2009

V!m tel quel est assez lourd à utiliser, alors voici un petit .vimrc toujours à coller dans votre home ! Bien entendu je remercie une fois de plus le pro du Web - un certain J. T. - pour m'avoir initie a l'univers et a la configuration V!m !

"#########################################################################
"#                                                                       #
"#               Mon ~/.vimrc par Erwan Laby Ben Souiden                 #
"#               ---------------------------------------                 #
"#                                                                       #
"#last MAJ : 2009-02-20 11:02                                            #
"#e.bensouiden@gmail.com                                                 #
"#########################################################################

" tres largement inspire de celui de J. T. le pro du Web

" Configuration generale
" ----------------------

" Affiche les numeros de lignes, set nonu pour les retirer
set number
"set numberwidth=1
" Va highlighter directement la pattern lors d'une recherche a la volee
set incsearch
" Va highlighter les resultats d'une recherche
set hlsearch
" Indentation automatique
set autoindent
" Pour la souris : en 'a' la souris permet de scroller
" en 'h' la souris permet de selectionner
set mouse=a
" Option de collage
set nopaste
" le J. T. official V!m status , laststatus permet d'afficher tout le temps la statusline
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\[HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]\ [LASTMODIFIED=%{FileTime()}]
set laststatus=2
" Modification des tabs et des espaces
set softtabstop=4
set tabstop=4
set shiftwidth=4
set expandtab
set ttymouse=xterm2
" Syntax enable
syntax on

" La ligne sur laquelle le curseur se trouve est highlighte
"set cursorline
"highlight Cursorline term=reverse cterm=reverse

set showmatch
set wildmenu
set wildignore=*.o,*#,*~,*.dll,*.so,*.a
set wildmode=full

set foldmethod=indent " A chaque indentation, un fold est cree
set fillchars=fold:-
set foldtext=MyFoldDisplay()
au BufWinLeave * mkview
au BufWinEnter * silent loadview

" Shortcuts
" ---------

" Diviser le buffer actuel puis switcher entre les buffers
map <F2> <esc><c-w>s
map <F3> <esc><c-w><Up>
map <F4> <esc><c-w><Down>
map! <F2> <esc><c-w>s
map! <F3> <esc><c-w><Up>
map! <F4> <esc><c-w><Down>

" Changer dynamiquement la souris ainsi que le mode de copie
map <F5> <esc>:call MouseManage()<CR>i
map! <F5> <esc>:call MouseManage()<CR>i

" Plus de numero ligne ou pas !
map <F6> <esc>:call NumLineManage()<CR>
map! <F6> <esc>:call NumLineManage()<CR>

" Gestion des buffers avec le vim *
map <F7> <esc>:ls<CR>
map! <F7> <esc>:ls<CR>

" Ouvrir un nouveau fichier
map <F8> <esc>:e
map! <F8> <esc>:e

" Test si le script perl compile
map <F9> <esc>:!perl -c %<CR>
map! <F9> <esc>:!perl -c %<CR>

" Fais un backup du fichier courant en .save
map <F10> <esc>:w %.save<CR>
map! <F10> <esc>:w %.save<CR>

" Indenter une ligne ou le texte complet
map <F11> <esc>==<CR>
map! <F11> <esc>==<CR>
map <F12> <esc>gg=G<CR>
map! <F12> <esc>gg=G<CR>

" Anciens Shortcuts
" -----------------
" avec la gestion de la souris
"map <F5> <esc>:set mouse=h<CR>
"map <F6> <esc>:set mouse=a<CR>
"map! <F5> <esc>:set mouse=h<CR>
"map! <F6> <esc>:set mouse=a<CR>
" F11 pour coller du texte formatte
" et F12 pour revenir a l'etat initial
"map <F11> <esc>:set paste<CR>
"map <F12> <esc>:set nopaste<CR>
"map! <F11> <esc>:set paste<CR>
"map! <F12> <esc>:set nopaste<CR>

" Fonctions
" ---------

" Fonction 1 : affichage divers
function! s:DisplayStatus(msg)
    echohl Todo
    echo a:msg
    echohl None
endfunction

" Fonction 2 : activation/desactivation de la gestion de la souris
let s:mouseActivation = 1
function! MouseManage()
    if (s:mouseActivation)
        let s:mouseActivation = 0
        set mouse=n
        set paste
        call s:DisplayStatus('mouse desactivee + possibilite de coller du texte deja formatte')
    else
        let s:mouseActivation = 1
        set mouse=a
        set nopaste
        call s:DisplayStatus('mouse activee + collage avec gestion de l autoindent')
    endif
endfunction

" Fonction 3 : modification du texte dans les folds
function! MyFoldDisplay()
    let line = getline(v:foldstart)
    let sub = substitute(line,'/\*\|\*/\|^\s+', '', 'g')
    let lines = v:foldend - v:foldstart + 1
    return v:folddashes.sub.'...<< '.lines.' Lines >>...'.getline(v:foldend)
endfunction

" Fonction 4 : numero de lignes ou pas ?
let s:numlineActivation = 1
function! NumLineManage()
    if (s:numlineActivation)
        set nonu
        let s:numlineActivation = 0
    else
        set number
        let s:numlineActivation = 1
    endif
endfunction

" Fonction 5 : recuperer le dernier lastmodified du fichier courant
function! FileTime()
    let filename=tolower(expand("%:p"))
    let msg=strftime("%Y/%m/%d-%H:%M:%S",getftime(filename))
    return msg
endf

Quelques memo pour V!m :

<esc>K : permet d'afficher le man de la commande sur laquelle se trouve le pointeur
<esc>:! commande : execute "commande" dans le terminal
yy : copie la ligne sur laquelle se trouve le pointeur
yNUMy : copie les NUM lignes a partie de laquelle se trouve le pointeur
dd : coupe la ligne sur laquelle se trouve le pointeur
dNUMd : coupe les NUM lignes a partie de laquelle se trouve le pointeur
p : colle les lignes copiees
<shift>C : efface tout entre le pointeur et la fin de la ligne + passe en mode insertion
<esc>:r!which commande : affiche le chemin vers l exec commande sur la ligne ou se trouve le curseur
<esc>gg : va au debut du fichier
<esc>G : va a la fin du fichier
zc : replie le fold courant
zo : deplie le fold courant


Quelques colorscheme sympas :
Les schemes doivent se trouver dans ~/.vim/colors/ et doivent posseder l'extension .vim

Pour changer de colorscheme il suffit de faire
<esc>colorscheme nom-scheme-sans-ext

http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/midnight2.vim : pour perl

Personal tools