При редактировании файлов .scm
было бы замечательно, если бы Vim автоматически поместил конечную скобку )
, как только я запустил (
. Как это сделать?
Как заставить Vim автоматически поместить конечные фигурные скобки?
Ответ 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, который отлично работает для меня. Это просто и полезно.
Ответ 5
На эту тему есть много советов и плагинов. Посмотрите соответствующую запись на сайте vimtips.
Ответ 6
В настоящее время я использую auto-pairs, и он работает очень хорошо.
Проблемы с расширением плагина отменить/повторить/повторить, по-видимому, сохраняются среди некоторых из перечисленных выше плагинов, но я не думаю, что это большая проблема (ну, по крайней мере, не для меня в данный момент).
Просто одно предупреждение, хотя я не смог использовать: helptags для создания файла справки с этим плагином, как на момент написания этого сообщения.
Ответ 7
Ознакомьтесь с этим новым плагином: vim-autoclose by Townk. Ранее упомянутый AutoClose был агрессивным, иногда поступающим нежелательным образом.
Ответ 8
Существует проблема с использованием этого (через imap или один из скриптов). Вы не сможете повторить полное редактирование с помощью команды .
.
e.g. (foo) with . only gets you foo, without the brackets.
Он отлично работает, если вы обычно вставляете скобки, как два символа.
Ответ 9
Вы можете попробовать скачать следующий плагин AutoClose: Вставляет соответствующие скобки, парные, скобки или цитаты
Ответ 10
https://github.com/vim-scripts/Auto-Pairs
Протестирован этот плагин для нередуцированного повтора. 2013 Он просто работает. Также с плагином в режиме python.
Ответ 11
Существует новый плагин cohama:
lexima.vim
(github)
(еще не на vim.org)
Этот плагин поддерживает команду .
!
Afaik, это единственный плагин, поддерживающий это.
Также выполняется последовательность отмены/повтора.