Você quase a tem
:%s/\('.*'\)/Literal()/gci
Você precisa salvar a correspondência e referenciá-la na substituição. Você estava inserindo um literal (sem trocadilho) * na substituição.
Eu tenho um arquivo com um monte de palavras na forma 'foo' e eu quero mudá-las para o Literal ('foo'). O seguinte: Comando s :%s/'.*'/Literal('.*')/gci
encontra as coisas que eu quero mudar, mas, em seguida, substitui todas elas com Literal ('. *') Em vez de Literal ('foo')
Examples:
I get:
'_' -> Literal('.*')
'dog' -> Literal('.*')
I want:
'_' -> Literal('_')
'dog' -> Literal('dog')
Uma alternativa à resposta de casey com captura explícita é restringir a correspondência com \zs
(start) e \ze
(end), para afirmar que as aspas simples estão lá, mas não incluí-las. Então, você pode simplesmente se referir à correspondência na parte de substituição com &
:
:%s/'\zs.*\ze'/Literal(&)/gci
Tags vim regular-expression