Estoy escribiendo una función VIML que, en el modo de inserción, permite una <BS>
a través de la parte inicial de un par ( [
, {
, etc.) para eliminar la parte de cierre del par si es el siguiente carácter después del cursor (como auto-pares y vim-autoclose ). Esta función será diferente porque la parte de cierre del par no se eliminará si hay pares desequilibrados.
Ejemplos:
El formato es <initial> => <result-after-backspace>
donde mi cursor está delante de |
.
((|) => (|)
((|)) => (|)
(|) => |
(defn => (defn
(|) |)
¿Cómo puedo determinar si los pares están desequilibrados o no antes de continuar y eliminar el par de cierre?
He probado ambos pares automáticos y vim-autoclose . Con ambos complementos, la parte de cierre del par siempre se elimina.