Estou escrevendo uma função VimL que, no modo de inserção, permite que uma <BS>
parte da abertura de um par ( [
, {
etc.) exclua a parte de fechamento do par se for o próximo caractere após o cursor (como pares automáticos e vim-autoclose ). Esta função será diferente porque a parte de fechamento do par não será excluída se houver pares desequilibrados.
Exemplos:
O formato é <initial> => <result-after-backspace>
onde meu cursor está na frente do |
.
((|) => (|)
((|)) => (|)
(|) => |
(defn => (defn
(|) |)
Como posso determinar se os pares estão desequilibrados antes de prosseguir e excluir o par final?
Eu testei os pares automáticos e o vim-autoclose . Nos dois plugins, a parte de fechamento do par é sempre excluída.