Vimrc
From AleikoumWiki
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 : 2008-10-28 10:27 # "#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] 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
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
Quelques colorscheme sympas :
Les schemes doivent se trouver dans ~/.vim/colors/ et doivent posseder l'extension .vim
<esc>colorscheme nom-scheme-sans-ext
http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/midnight2.vim : pour perl