config vim pour python Revision 366537333538 (Sun Mar 15 2009 at 10:28) - Diff Link to this snippet: https://friendpaste.com/5nqTKf58ixHd7LLFu7vTrw Embed: manni perldoc borland colorful default murphy trac fruity autumn bw emacs pastie friendly Show line numbers Wrap lines 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Fichier de configuration de Vim" Mis à jour le 05/03/09""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Options affichages VIM""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set hlsearch "Met en surbrillance le résultat de la rechercheset history=50 "Historique de 50 commandesset number "Affiche le numéro des lignesset ruler "Afiche la position du curseurset showcmd "Affiche la commande en coursset laststatus=2 "Affiche la barre de statutset mouse=a "Active la sourisset wildmenu "Active la fenetre des possibilitéscolorscheme morning""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Personnalisation de l'affichage VIM""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Informations affichées dans la barre de statut"set statusline=%<%f%h%m%r%=%{&ff}\ %l,%c%V\ %P\%([%{Tlist_Get_Tagname_By_Line()}]%)"set statusline=%a\ %t%1*%m%*%10l/%2*%L%*%6c%V"set statusline=%a\ %t%1*%m%*%10l/%2*%L%*%6c%V/%2*%{strlen(getline('.'))}%*%10{getfsize(expand('%'))}oset statusline=%<%f\ %h\ %m\ %r\ %=%b\ Ox%B\ %c[%v],%l\ %P """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Parametres supplémentaires VIM""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set nocompatible "Mode non-compatible avec vifiletype plugin on "Detection automatique du type du fichierset backspace=2set tabstop=4 "Nombre d'espace pour une tabulationset shiftwidth=4 "Nombre de tabulations pour l'indentationset softtabstop=4 "Nombre d'espaces pour la tabulation (édition)set textwidth=78 "Limite le nombre de caractères par ligneset autoread "Fichier relu automatiquement par VIMset showmatch "Signalisation de fermeture des (),[],{}set matchtime=2 "Fixe la durée de signalisation sm à 2secset incsearch "Recherche incrémentaleset ignorecase "Ne prend pas en compte la casse pour une rechercheset smartcasesyntax onset nojoinspaces"implémentation de ctags, nécessaire pour le plugin 'taglist'let Tlist_Ctags_Cmd = '/usr/bin/ctags'"Permet de passer du dernier caratere d'une ligne au premier de la suivanteset whichwrap=b,s,<,>,[,]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Paramètres d'ouverture de fichier"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Reprendre à l'endroit ou on a quitter le fichierset viminfo='10,\"100,:20,%,n~/.vim/.viminfoau BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Options basiques spéciales Python""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Détection du type de fichier pour l'indentationif has("autocmd") filetype indent onendif"" Pour visualiser les indentationsset listset lcs:tab:>-,trail:."""Active la completion Pythonau FileType python set omnifunc=pythoncomplete#Completeau FileType python set expandtabau FileType python set fdm=indent " Repli selon l'indentationau FileType python setlocal textwidth=79au FileType python set foldlevel=2 " Masque les indentations >2 niveaux""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Options de sauvegardes des fichiers""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Backup dans ~/.vim/backupif filewritable(expand("~/.vim/backup")) == 2 " comme le répertoire est accessible en écriture, " on va l'utiliser. set backupdir=$HOME/.vim/backupelse if has("unix") || has("win32unix") " C'est c'est un système compatible UNIX, on " va créer le répertoire et l'utiliser. call system("mkdir $HOME/.vim/backup -p") set backupdir=$HOME/.vim/backup endifendif" Sauvegarde les scripts en executableau BufWritePost * call ModeChange()"Sauvegarde et restauration automatique des vuesau BufWinLeave *.py mkviewau BufWinEnter *.py silent loadview" Chemin de sauvegarde par défaut des vuesset viewdir=~/.vim/saveview" Utilisation de la trame 'python.py' à l'ouverture d'un nouveau fichier *.pyau BufNewFile *.py silent! 0r ~/.vim/templates/python.py""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Fonctions"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Donner des droits d'exécution si le fichier commence par #! et contient /bin/"dans son cheminfunction ModeChange() if getline(1) =~ "^#!" if getline(1) =~ "/bin/" silent !chmod a+x <afile> endif endifendfunction" Actualise la date de modification du fichier si le texte 'Mise à jour le 'i" figure dans les 20 premières lignes." Ce texte peut etre précédé de 20 caractères." Restaure la position du curseur en employant des marques.function! LastModified() if &modified normal ms let n = min([20, line("$")]) exe '1,' . n . 's#^\(.\{,10}Mis à jour le \).*#\1' . \ strftime('%d/%m/%y') . '#e' normal `s endifendfunautocmd BufWritePre * call LastModified()"Stocke des marques-pages dans le fichier .vim/vimsfunction! MoshBookmark() redir >> ~/.vim/bookmark echo "Rappel: taper <gf> pour ouvrir le marque page" echo strftime("%d-%b-%Y %a %H:%M") echo "Commentaire: " echo "vim ". expand("%:p").':'.line('.') echo ' word='.expand("<cword>") echo ' cline='.getline('.') redir ENDendfunctioncommand! MoshBookmark :call MoshBookmark()""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Mapping"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Insère la date en mode visuelinoremap <F4> # Mis à jour le <C-R>=strftime("%d/%m/%Y")<CR>"Masque les résultats de la recherchemap <F2> :nohlsearch<CR>"Active la touche <F5> pour lancer les scriptsau BufNewFile,BufRead *.py map <buffer><F5> :w!<cr>:!python %<cr>au BufNewFile,BufRead *.py imap <buffer><F5><esc>:w!<cr>:!python %<cr>"Remplace le <clic-milieu> par un <S-Insert> et retour en mode normal"en mode graphique uniquementif has("gui_running") map <S-Insert> i <MiddleMouse> <CR> set mousehide " On cache la souris en mode gui set ch=2 " ligne de commande dans deux lignesendif"Active la barre de Taglistnnoremap <silent> <F3> :TlistToggle<CR>let Tlist_Use_Right_Window = 0 " affiche les tags sur le côté gauchelet Tlist_Process_File_Always = 1 let Tlist_Exit_OnlyWindow = 1 "vim se ferme s'il reste uniquement la "fenêtre des tags