Ma configuration Vi / Vim / gVim
By Gregoire de Hemptinne on Wednesday, February 11 2009, 22:00 - Applications - Permalink
Ce billet n'apporte pas grand chose au monde, mais juste ma configuration vim du moment qui se trouve dans mon fichier ~/.vimrc (et que vous pouvez aussi mettre dans votre fichier /etc/vim/vimrc. C'est pas grand chose c'est vrai, mais en même temps c'est vraiment pratique d'avoir bien configuré son éditeur de fichier préféré pour optimiser sa vitesse de travail.

Si vous avez vous aussi des configurations particulières et perso que vous trouvez bien pratiques et que vous ne retrouver pas ici, n'hésitez pas à m'en faire part dans les commentaires. Autant optimiser au maximum pour avoir une configuration parfaite (même si chacun a ses petites manies, j'en convient
)
set nocompatible " breaks compatibility with original vi set backspace=indent,eol,start " allow backspace in insert mode set autoindent " text indenting set smartindent " as above set tabstop=4 " number of spaces in a tab set softtabstop=4 " as above set shiftwidth=4 " as above set history=100 " lines of command history set showcmd " show incomplete commands set hlsearch " highlight searched-for phrases set incsearch " highlight search as you type set smarttab set list " affiche les caracteres louches set tabpagemax=15
C'est évidement toujours une bonne chose que d'avoir des backups de vos travaux. Rien de plus frustrant que d'avoir un plantage et que de perdre du code :
" keep a copy of last edit " if this throws errors, make sure the backup dir exists set backup set backupdir=~/.vim/backup/
Pour mettre un peu de couleur dans vim voici des commandes presque devenues indispensable pour moi :
colorscheme desert " set up a color scheme in the gvim interface syntax on " active the syntaxic coloration let mywinfont="Monospace:h8:cANSI"
Voici les options qui sont propres à l'interface utilisée. Si vous utilisez l'interface graphique gvim ça ne seront pas les même option qu'avec vim en mode terminal. Là où vous voyez des caractères spéciaux, c'est afin de pouvoir marquer de manière friendly les caractères invisibles tel que le retour à la ligne, le tab, les espaces et les éléments du gens qui peuvent parfois salir du code :
if has("gui_running") " console Vim cannot set the font
if has("gui_gtk2") " GTK+2, not GTK+1
set gfn=Bitstream\ Vera\ Sans\ Mono\ 8
elseif has("gui_photon") " Photon GUI
set gfn=Bitstream\ Vera\ Sans\ Mono:s8
elseif has("gui_kde") " the obsolete kvim
set gfn=Bitstream\ Vera\ Sans\ Mono/8/-1/5/50/0/0/0/1/0
elseif has("x11") " other X11 GUIs including GTK+1
set gfn=-*-lucidatypewriter-medium-r-normal-*-*-100-*-*-m-*-*
else " non-X11 GUIs including Windows
set gfn=Lucida_Console:h9:cDEFAULT
endif
set number " display current line number
set listchars=eol:•,tab:‣ ,trail:»,extends:↷,precedes:↶
else
set listchars=eol:¶,tab:→ ,trail:»,extends:↓,precedes:←
endif
Si vous travaillez sur des long fichiers, vous serez content, lors de la ré-ouverture du fichier, de vous retrouver à la même position qu'en quittant :
if has("autocmd")
filetype plugin indent on
autocmd FileType text setlocal textwidth=78
" always jump to last edit position when opening a file
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
endif
Voici une petite option que je viens de découvrir et qui permet de mettre en évidence la ligne sur laquelle se trouve mon curseur :
set cursorline highlight CursorLine guibg=#001000



Comments
Merci pour ce post que je viens de trouver et dont j'ai copié quelques paramètrages.
Je voulais juste signaler que les parties spécifiques à gvim peuvent être déplacées dans ~/.gvimrc.
Bonjour, si ton répertoire ~/.vim/backup n'existe pas, tu vas avoir une erreur en sauvegardant tes fichiers. Deux solutions s'offrent à toi :
- tu t'en moques et tu crées ton répertoire à chaque fois que le problème se présente (après avoir changé de système ou simplement réinstallé ta distrib préférée) ;
- tu donnes à ton vimrc la responsabilité de créer le répertoire s'il ne le trouve pas.
Autre point, d'après mes recherches, set nocompatible n'est pas indispensable car si VIM trouve un .vimrc, il se comportera déjà en mode non compatible avec VI ! J'ai vu ça dans l'aide je crois, à vérifier au besoin.
Merci pour ton astuce du cursorline, je ne connaissais pas et j'aime bien =)
Pour ce qui est du hlsearch, j'adore mais ça m'énnerve que les résultat restent en couleur jusqu'à la prochaine recherche, s'il y a beaucoup de "matchs" dans le fichier, c'est assez polluant ! Je suppose que tu connais la commande :nohls, contrairement à ce qu'on pourrait penser vu son nom : elle ne désactive pas l'option mais retire la surbrillance jusqu'à la prochaine recherche tout simplement. C'est du one shot comme on dit ^^
Du coup, j'ai fait ceci pour ma part :
Bon j'ai fini mon commentaire sans fin, je vais sûrement te piquer des idées et je posterai mon vimrc perso sur mon blog à l'occasion (j'y travaille actuellement, c'est pourquoi je suis tombé sur ton article ^^).
Merci pour ton travail. Ciao !
Merci pour ton commentaire détaillé ... je pense que je vais aussi adopter le nohls
Sur ce, bonne vimification
marrant comme je peux tomber sur ton site en cherchant des paramètres de config de vi...
vraiment je ne comprends pas pq :D
J'ai adapté ma façon de faire des backup, je poste donc pour partager
Déjà, au début de mon fichier vimrc, je fais un "let chezMoi=1" que je change à 0 si besoin... Je but est de programmer des comportements de Vim différents chez moi ou au travail. Par exemple, sur un serveur qui ne m'appartient pas... Je ne m'amuse pas à créer ~/.vim/backup =) De même, je voulais que Vim trouve son chemin aussi bien sans sa version PortableVim de Framakey sous Windows que si je m'en sers via GVim ou vim sur Linux.
Le résultat est de toute façon commenté :
let chezMoi=1
" ....
if chezMoi
if has("unix") || has("win32unix")
if filewritable($HOME."/.vim/backup") != 2 && exists("*mkdir")
call mkdir($HOME."/.vim/backup", "p") " Creation du repertoire de sauvegarde
endif
set backupdir=$HOME/.vim/backup " On definit le repertoire de sauvegarde des backups (fichiers~)
elseif has("win32")
if filewritable($VIMRUNTIME."/backup") != 2 && exists("*mkdir")
call mkdir($VIMRUNTIME."/backup", "p") " Creation du repertoire de sauvegarde
endif
set backupdir=$VIMRUNTIME/backup " On definit le repertoire de sauvegarde des backups (fichiers~)
endif
set backup " On active le comportement
else
set nobackup
endif
Intéressant ! Merci de nous partager ces infos
En effet je pense que c'est bien de différencier les environnements