Vous utilisez vim, mais il vous arrive souvent d'avoir à refaire les mêmes opérations, pour les mêmes fichiers. Vous avez déjà essayé de chercher à les automatiser, mais la doc vous a découragé. Voici quelques exemples conviviaux à mettre dans votre ~/.vimrc :

Lire vos fichiers xml non .xml (par exemple .xul, .dtd, .rdf) comme des xml et donc en utf8 :

autocmd BufRead,BufNewFile *.rdf,*.xul,*.dtd set ft=xml | set enc=utf-8 | set fenc=utf-8 | set termencoding=latin-9

Pour lire vos fichiers templates comme des fichiers html, et vos php* comme des php :

autocmd BufRead,BufNewFile *.tmpl,*.tpl set ft=html
autocmd BufRead,BufNewFile *.php3,*.php4,*.php5,*.php*.r* set ft=php

Pour ceux qui créent des paquets debian : (Merci à Gabuzo pour celles-ci)

autocmd BufRead,BufNewFile */debian/changelog set enc=utf-8 | set fenc=utf-8 | set termencoding=latin-9 | set tw=80
autocmd BufRead,BufNewFile */debian/control set enc=utf-8 | set fenc=utf-8 | set termencoding=latin-9 | set tw=80

Tout ceci, c'est bien, mais vous aimeriez maintenant lancer des commandes lorsque vous enregistrez un fichier. Par exemple pour supprimer les accents, car votre fichier doit être en ascii, et que vous rajoutez toujours des accents par réflexe :

autocmd BufWritePre ~/monfichier_sans_accent %s/é/e/ge | %s/è/e/ge | %s/ê/e/ge | 
 %s/ë/e/ge | %s/É/E/ge | %s/È/E/ge | %s/Ê/E/ge | %s/Ë/E/ge | %s/à/a/ge | %s/ä/a/ge |
 %s/À/A/ge | %s/Ä/A/ge | %s/î/i/ge | %s/ï/i/ge | %s/Î/I/ge | %s/Ï/I/ge | %s/ô/o/ge |
 %s/ö/o/ge | %s/Ô/O/ge | %s/Ö/O/ge | %s/û/u/ge | %s/ù/u/ge | %s/ü/u/ge | %s/Û/U/ge |
 %s/Ù/U/ge | %s/Ü/U/ge | %s/Ç/C/ge | %s/ç/c/ge

Voilà, dans le même genre on peut imaginer une autocmd qui re-tab votre fichier quand vous le sauvegardez afin qu'il soit toujours bien indenté. (A vous d'écrire la fonction qui re-tab le fichier … faut pas déconner non plus)

unix/vim_autocommands.txt · Last modified: 2010/01/12 13:29 (external edit)