Je ne suis toujours pas habitué à la syntaxe des expressions rationnelles vim. J'ai ce code:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
Je voudrais faire correspondre le dernier identifiant avec un lookahead positif dans la syntaxe regex des VIM.
Comment ferais-tu ceci?
\id@=_\d$
Cela ne fonctionne pas.
Cette syntaxe Perl fonctionne:
id(?=_\d$)
Modifier - la réponse:
/id\(_\d$\)\@=
Quelqu'un peut-il expliquer la syntaxe?
Si vous consultez l'aide de vim, il n'y a pas grand-chose à expliquer: (:h \@=
)
\@= Matches the preceding atom with zero width. {not in Vi}
Like "(?=pattern)" in Perl.
Example matches
foo\(bar\)\@= "foo" in "foobar"
foo\(bar\)\@=foo nothing
Cela devrait correspondre au dernier identifiant:
/id\(_\d$\)\@=
enregistrer quelques barres obliques avec "très magique":
/\vid(_\d$)@=
en fait, il semble plus simple d'utiliser le \zs \ze
de vim:
id\ze_\d$