Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 hmm
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. wink


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