Pregunta:
Tengo curiosidad por saber si es posible hacer que un objeto de texto sea consciente de su operador. En particular, estoy escribiendo un objeto de texto para entornos LaTeX, donde quiero un comportamiento diferente según el operador. Por ejemplo, considere el siguiente fragmento de LaTeX:
\begin{example}
Hello world
\end{example}
Aquí es más conveniente que die
borre el contenido de forma lineal, mientras que cie
borra "Hola mundo", pero conserva la sangría, es decir, da
\begin{example}
|
\end{example}
donde |
es el cursor.
Respuesta:
El siguiente ejemplo se acerca a lo que está pidiendo:
onoremap <expr> w '<esc>' . v:operator . v:count1 . (v:operator ==# 'd' ? 'aw' : 'iw')
Crea un objeto de texto w
que es aw
, en caso de que lo use el operador de eliminación, es decir, dw
= daw
, o iw
otro modo, por ejemplo cw
= ciw
.