Как автоматически заполнять одинарные и двойные кавычки, скобки и т. д. в редакторе VIM?

Как автоматически заполнять одинарные и двойные кавычки, скобки и т. д. в редакторе VIM?

Мне нужно, чтобы каждый раз, когда я пишу одинарную или двойную кавычку, круглые скобки, фигурные скобки, квадратные скобки... автоматически vim создавал закрывающую скобку и помещал курсор внутрь, чтобы легко продолжить редактирование. Я заметил, что большинство редакторов так делают.

Мне нужно, чтобы это работало для каждого языка программирования. PHP, JS, JQUERY, HTML, CSS... но без использования фрагмента, потому что фрагментам нужно сочетание клавиш или раскладка клавиатуры для этого (непродуктивно). Мне нужно, чтобы это автодополнение работало автоматически после нажатия клавиши ".

решение1

Существуют плагины, такие как delimitMate, которые предоставляют эту возможность. Или вы можете создать свои собственные сопоставления. Более подробный список плагинов и подробное обсуждение потенциальных сопоставлений можно найти здесь:http://vim.wikia.com/wiki/Автоматически_добавляемые_закрывающие_символы; в целом отображения похожи на:

inoremap        (  ()<Left>
inoremap <expr> )  strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : ")"

Однако в настоящее время (начиная с Vim 7.4.781) такие сопоставления и любой установленный вами плагин нарушат отмену/повтор/повтор, так что для удаления введенного текста требуется два шага отмены: 1 для удаления внутренних скобок, один для удаления самих скобок. Существует патч для исправления этого, если вы готовы скомпилировать свой собственный Vim:https://groups.google.com/forum/#!topic/vim_dev/gBumYDSEJoo/discussion

решение2

Для этого вам необходимо установить плагин.Этотпример плагина. Его проще использоватьВозвышенный текстчем любой другой редактор. Он простой и легкий.

Связанный контент