¿Es posible hacer que las marcas vim (por ejemplo, mm) apunten al carácter en el que están configuradas originalmente en lugar de a la ubicación de línea/columna original del carácter?
Por ejemplo, si escribo mm en la primera letra de la palabra "políticos" (Línea 1, Columna 72) en la oración de ejemplo a continuación y luego elimino la palabra "entradas" y luego escribo `m, mi cursor volverá al originalcursorposición (Línea 1, Columna 72) que ahora es la ubicación de la letra 'a' en la palabra "políticos". Entiendo que este es el comportamiento esperado de vim, peroEn su lugar, me gustaría que `m me devolviera a la 'p' de políticos, aunque la ubicación de la Línea/Columna haya cambiado.
Oración de ejemplo:
El bloqueo de 10 días se produce después de que se realizaran cambios anónimos en políticos y empresas, así como de eventos como el asesinato de Kennedy.
Encuentro que mi comportamiento deseado es mucho más útil para la forma en que escribo/edito (especialmente cuando uso Vim más allá de su propósito original de codificación). Viemu, un complemento que agrega gran parte de la funcionalidad de Vim a los identificadores de Word, marca la forma que deseo. Desafortunadamente, Viemu no es una adaptación perfecta de Vim y preferiría redactar todo el texto (correos electrónicos, ensayos, etc. y no solo código) en Vim. No saber cómo hacer que Vim trate las marcas de la forma deseada es una de las principales razones por las que no lo uso exclusivamente.
Gracias de antemano,
PD: Esta es la primera vez que publico en un stackexchange/superusuario, así que perdónenme si no he seguido el formato/protocolo adecuado para hacer una pregunta y corríjanme.
Respuesta1
Si bien las marcas se ajustarán para las líneas agregadas o eliminadas, la posición de la columna no; tienes razón en eso. Su comportamiento deseado ciertamente tiene múltiples beneficios; Supongo que aún no se ha implementado, probablemente debido a la complejidad que implica. (Y rompería la compatibilidad con vi y versiones anteriores de Vim, algo que no se toma a la ligera).
Aunque es posible conectarse a algunas acciones de edición con :autocmd
s, esto generalmente no es posible (por ejemplo, cosas como :s
no se pueden interceptar), por lo que emular ese comportamiento en Vimscript sería difícil, y no conozco ninguna implementación de este tipo.