¿Poner el valor de un argumento en parte de una expresión regular en vimscript?

Pregunta:

¿Es posible pasar una variable a una función en vimscript y luego usar ese valor en una búsqueda y reemplazar expresiones regulares?

Por ejemplo:

function! AddTW5Links(tiddlerSetName) 

    %s/\(*\+\)\(\[\[\(.*\)\)\]\]/\1[[\3|\3 - $tiddlerSetName]]/g

endfunction

Respuesta:

Tiene la opción de usar :s después de :exe o usar :s\= .

Significado (no probado)

:exe 's/\(*\+\)\(\[\[\(.*\)\)\]\]/\1[[\3|\3 - '.a:tiddlerSetName.']]/g'

(tenga cuidado con las comillas dobles, tendrá que duplicar todas sus barras diagonales inversas con ellas)

O

:s/\(*\+\)\(\[\[\(.*\)\)\]\]/=submatch(1).'[['.submatch(3).'|'.submatch(3).' - '.a:tiddlerSetName.']]'/g

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım