He estado buscando un nuevo operador en Vim que tome un parámetro adicional.Definición de un nuevo operador de Vim con un parámetro
Por ejemplo, sabemos que ciw
"cortará palabra dentro" y le pondrá en el modo de inserción, lo que busco es tener una acción personalizada para reemplazar c
(por ejemplo s
) que se lleva a movimientos como iw
pero requiere un parámetro extra
Un ejemplo trivial sería:
Given a line in a text file
y ejecutar en modo normal (dado el cursor en la primera columna) siw*
que rodearía la primera palabra con *
así:
*Given* a line in a text file
Lo sé, esto es lo que hace el complemento surround.vim más excelente. Pero solo estoy dando un ejemplo aquí, y estoy buscando una respuesta sobre cómo obtener las asignaciones para que el trabajo anterior funcione.
He intentado jugar con onoremap
y opfunc
pero parece que no puedo hacer que jueguen como yo quiero.
Esto es una combinación de movimientos más mapeos pendientes del operador.
Pregunta interesante :) – Rook
Porque eso es lo que hace Surround, ¿miraste el código de Surround? – romainl
Eso es más o menos lo que Surround hace, excepto que agrega los movimientos después de las acciones de Vim como 'y',' d' y 'c'.Una vez más, tenga en cuenta que estoy dando un ejemplo, sin decir que quiero volver a escribir Surround. Y sí, he visto la fuente de Surround. – alfredodeza