Подтвердить что ты не робот

Как заставить Vim автоматически поместить конечные фигурные скобки?

При редактировании файлов .scm было бы замечательно, если бы Vim автоматически поместил конечную скобку ), как только я запустил (. Как это сделать?

4b9b3361

Ответ 1

Вы можете сопоставить открывающую скобу по своему вкусу:

:imap ( ()<left>

Ответ 2

Попробуйте использовать плагин AutoClose.

Ответ 3

Самый простой ответ - включить карту. Например:.

:inoremap ( ()<left>

Проблема заключается в том, что вам нужно будет добавить одну запись для каждого автоматически закрываемого символа ('{', '[', '' 'и т.д.). Кроме того, плагины обычно более умны, обеспечивая такие вещи, как обнаружение "закрыть" и не повторять его.

Проблема с вышеприведенным решением и большинством плагинов состоит в том, что они стремятся нарушить последовательность отмены (gundo кого угодно?), как объясняется в : help ins-special-special.

Вот список плагинов, которые делают то, что вы просите (из vimtips):

  • delimitMate от Израиля Chauca Fuentes (настраивается и не прерывает отмену/повтор/повтор, но - break iabbr) также на GitHub
  • AutoClose от Karl Guertin (автоматически закрывает определенные жестко закодированные символы, но не прерывает отмену/повтор/повтор)
  • AutoClose от Thiago Alves (настраивается, но прерывает отмену/повтор/повтор)
  • auto-pairs Auto Pairs by Miao Jiang (настраивается, но прерывает отмену/повтор/повтор)
  • ClosePairs от Edoardo Vacchi (настраивается, но прерывает отмену/повтор/повтор)
  • smartinput от Kana Natsuno (настраивается, но прерывает отмену/повтор/повтор)

Помимо vimtips, есть другое приятное объяснение проблемы в Интернете.

Ответ 4

Мне тоже нужен был, и я уже пробовал несколько плагинов:

AutoClose, http://www.vim.org/scripts/script.php?script_id=1849, является немного агрессивным.

простые пары, http://www.vim.org/scripts/script.php?script_id=2339, зависит от Python. Если вы работаете в Linux, это не проблема, но в Windows это может быть проблемой для соответствия версии Vim используемому интерпретатору Python.

Мой совет - это ClosePairs, который вы можете найти в http://www.vim.org/scripts/script.php?script_id=2373, который отлично работает для меня. Это просто и полезно.

Ответ 6

В настоящее время я использую auto-pairs, и он работает очень хорошо.

Проблемы с расширением плагина отменить/повторить/повторить, по-видимому, сохраняются среди некоторых из перечисленных выше плагинов, но я не думаю, что это большая проблема (ну, по крайней мере, не для меня в данный момент).

Просто одно предупреждение, хотя я не смог использовать: helptags для создания файла справки с этим плагином, как на момент написания этого сообщения.

Ответ 7

Ознакомьтесь с этим новым плагином: vim-autoclose by Townk. Ранее упомянутый AutoClose был агрессивным, иногда поступающим нежелательным образом.

Ответ 8

Существует проблема с использованием этого (через imap или один из скриптов). Вы не сможете повторить полное редактирование с помощью команды ..

e.g. (foo) with . only gets you foo, without the brackets.

Он отлично работает, если вы обычно вставляете скобки, как два символа.

Ответ 10

https://github.com/vim-scripts/Auto-Pairs

Протестирован этот плагин для нередуцированного повтора. 2013 Он просто работает. Также с плагином в режиме python.

Ответ 11

Существует новый плагин cohama:

lexima.vim (github)

(еще не на vim.org)

Этот плагин поддерживает команду .!
Afaik, это единственный плагин, поддерживающий это.

Также выполняется последовательность отмены/повтора.