Hay una operación de búsqueda y reemplazo que estoy tratando de hacer utilizando backreferencing y expresiones regulares en vim. Curiosamente, solo reconocerá el patrón si realizo una búsqueda pura, pero si realizo una búsqueda y lo reemplazo, me da un E486: error de patrón no encontrado.patrón encontrado en vim search, pero no en vim buscar y reemplazar?
que tienen un montón de llamadas a la función de la forma:
function(Nullable<double>(1.1), map[FOO]);
donde foo es algo diferente nombre de la variable en cada línea. Quiero convertirlo en
function(othermap[ FOO ], map[FOO]);
Si intento
:%s/Null.*\(map[\)\(.*\)\]/othermap[ \2 \], \1\2\]/g
Me da la "Patrón de error no encontrado". Incluso
:%s/Null.*\(map[\)\(.*\)\]//g
no funcionará porque simplemente no reconoce el patrón. Pero si intento el siguiente comando con la misma expresión exacta de búsqueda:
/Null.*\(map[\)\(.*\)\]
Se resalta correctamente. Después de lo cual, puedo hacer% s // othermap [\ 2], \ 1 \ 2] para hacer mi reemplazo. Así que pude hacer mi reemplazo después de todo, pero no puedo entender por qué el patrón se reconocería en un caso y no en el otro.
Posible duplicado de [vim no buscar y reemplazar la frase simple que está claramente presente] (https://stackoverflow.com/questions/5289262/vim -no-busca-y-reemplaza-frase-simple-que-está-claramente-presente) –