Авто-скобки с Ultisnips и vim-arpeggio
У меня есть настройка для автоматического закрытия скобок в vim, которая работает почти идеально для меня. Я прошу совета, чтобы сделать его полностью идеальным, внизу этого поста;)
В настоящее время мое решение достигает этого: (в режиме вставки; |
указывает на курсор)
lala|
- (удар
(
а также)
одновременно) lala(|)
- (удар
(
а также)
одновременно) lala((|))
- (Cj)
lala(()|)
- (Cj)
lala(())|
- (удар
(
) lala(())(|
Мне это нравится, потому что я могу использовать автоматические скобки или нет без необходимости удалять ненужные вставки. Поскольку круглые скобки в основном расположены рядом друг с другом на клавиатуре, легко и интуитивно понятно нажимать их одновременно. Я могу легко добавлять произвольные новые (многосимвольные) типы скобок через UltiSnips. Прыжки в скобки встраиваются и полностью интегрируются с другими фрагментами Ultisnips, которые я использую. Поэтому я не согласен с ответом на Отключить замену скобок Vim SnipMate.
Как это работает:
- установить 'kana/vim-arpeggio' и 'SirVer/ultisnips'
- в ~/.vimrc:
Arpeggio inoremap () œœ
- в глобальном файле сниппетов all.snippets:
положил
snippet œœ "auto paren" iA
($1)$0
endsnippet
- повторите для каждой желаемой пары скобок, раз и навсегда. (опционально, разрешить разные скобки для каждого типа файла)
Это немного странно, так как мне нужно зарезервировать несколько редких комбинаций символов, чтобы активировать автоматическое расширение фрагмента.
Актуальный вопрос: когда я нажимаю u
чтобы отменить автоматическую вставку скобок, я получаю промежуточные символы - назад. Есть ли способ сделать один шаг отмены, охватывающий всю операцию? Или есть другая настройка, которая менее хакерская и выполняет все, что я хочу, включая отмену?