Pages : 1
#1 Le 27/12/2007, à 01:28
- crunchyy
expressions régulières de vim.
Bonjour,
dans mon vimrc j'ai des skeleton du genre :
autocmd BufNewFile *.cpp 0r ~/.vim/skeleton.cpp
Mais j'y comprends rien à la syntaxe qu'il utilise pour les expression régulière.
Par exemple le '.' de * ->.<- cpp doit normalement signifier tout caractère sauf fin de ligne non?
Je vous demande cela car je voudrais créer une E.R un peu complexe qui exclue les noms de fichiers cpp se terminant par qt genre testqt.cpp, alors autant en lex c'est rapide autant la ne connaissant pas la syntaxe
Merci.
Même la perfection a un défaut. Celui de ne pas exister.
Hors ligne
#2 Le 27/12/2007, à 10:43
- Aurel34
Re : expressions régulières de vim.
Salut,
dans les autocmd vim, il ne s'agit pas de la syntaxe des expresssions rationnelles mais plus de quelque chose ressemblant aux wildcard du shell...
pour ton cas, un '*qt.cpp' devrait suffire
après, comme c'est dit dans la doc de vim (essaye :h autocmd), tu peux forcer la comparasion avec le nom de fichier long en commençant ton pattern par '/', du genre '/home/moi/monprojet/*qt.cpp'.
ps: comme dit dans la même doc, si ton pattern ne finit pas pas '/' la dernière lettre correspond à la fin du nom du fichier. Dans le cas '*qt.cpp', on a donc bien définit "tout fichier se finissant par qt.cpp".
#3 Le 27/12/2007, à 11:28
- crunchyy
Re : expressions régulières de vim.
Non ce n'est pas ce que je cherche en fait je cherche les fichiers qui ne sont pas de la forme '*qt.cpp'.
Car j'ai liée un skeleton aux fichiers de la forme '*qt.cpp', et je voudrais un autre skeleton au fichier .cpp qui ne finissent pas par qt.
C'est la que je bloque. je connais pas la syntaxe, donc si quelqu'un pourrait me filer un petit coup de main.
Même la perfection a un défaut. Celui de ne pas exister.
Hors ligne
#4 Le 27/12/2007, à 12:10
- Luc Hermitte
Re : expressions régulières de vim.
Ce n'est effectivement pas une regex.
En solution avec peu de modifs, tu peux rajouter un test dans ton autocommande pour vérifier ton nom de fichier (<sfile> je crois dans ce cas), et selon charger ton squelette ou pas.
Tu devrais trouver plusieurs exemples dans le fichier de reconnaissance de filetype de vim.
#5 Le 27/12/2007, à 12:35
- crunchyy
Re : expressions régulières de vim.
Bonjour,
En tapant :h autocmd (merci Aurel) je suis enfin tombé sur la syntaxe des patterns (dans la section 6). ca donne cela :
* matches any sequence of characters
? matches any single character
\? matches a '?'
. matches a '.'
~ matches a '~'
, separates patterns
\, matches a ','
{ } like \( \) in a |pattern|
, inside { }: like \| in a |pattern|
\ special meaning like in a |pattern|
[ch] matches 'c' or 'h'
[^ch] match any character but 'c' and 'h'
avec ça je me suis concocter
autocmd BufNewFile {*[^q]t,*[^t],t}.cpp 0r ~/.vim/skeleton.cpp
qui semble fonctionner.
Je vais approfondir les test dans les autocmd....;)
Même la perfection a un défaut. Celui de ne pas exister.
Hors ligne