Ich schreibe eine VimL Funktion , die, im Einfügemodus, ermöglicht einen <BS>durch das Öffnungsteil eines Paares ( [, {usw.) , das Schließteil des Paares zu löschen , wenn er das nächste Zeichen nach dem Cursor (ähnlich ist Auto-Paare und vim-autoclose ). Diese Funktion ist anders, da der schließende Teil des Paares nicht gelöscht wird, wenn unsymmetrische Paare vorhanden sind.
Beispiele:
Im Format befindet sich <initial> => <result-after-backspace>mein Cursor vor dem |.
((|) => (|)
((|)) => (|)
(|) => |
(defn => (defn
(|) |)
Wie kann ich feststellen, ob die Paare unausgeglichen sind oder nicht, bevor ich das schließende Paar lösche?
Ich habe sowohl Auto-Paare als auch Vim-Autoclose getestet . Bei beiden Plugins wird der schließende Teil des Paares immer gelöscht.