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

Автоматические закрывающие кронштейны для Vim

Есть ли какой-либо плагин WORKING для Vim 7.4, который автоматически закрывает скобки ('{}', '[]', '()') и может вставлять некоторые возвращаемые каретки (для '{}' по крайней мере)?

Я знаю, что этот вопрос задавался довольно много раз, но ни один из ответов не работает в vim 7.4, или плагин не был обновлен или что-то в этом роде.

До сих пор я пробовал vim-smartinput, autoclose и delimitmate, и NONE из них удалось вставить любые закрывающие символы, даже если я включил плагины, и они в противном случае выглядят активными. Я не знаю, были ли какие-то изменения в vim, которые каким-то образом ломают эти плагины. Ни один из этих плагинов, по-видимому, не обновляется в течение года. Любые рабочие решения, которые будут работать с vim 7.4?

4b9b3361

Ответ 1

Я отвечаю на свой вопрос, потому что понял, почему ни один из плагинов, похоже, не работает для меня. Похоже, проблема связана с функцией mksession в vim, я только тестировал эти плагины в сохраненной сессии и по какой-то причине, по-видимому, предотвращает работу плагинов по неизвестной причине. Плагины, кажется, установлены и "работают" отлично (как в командах из плагина, и т.д.). Не открывая сохраненную сессию, по крайней мере delimitMate начал работать для меня.

Ответ 2

Для тех из нас, кто хочет ваниль vim:

ino " ""<left>
ino ' ''<left>
ino ( ()<left>
ino [ []<left>
ino { {}<left>
ino {<CR> {<CR>}<ESC>O
ino {;<CR> {<CR>};<ESC>O

Этот автозаполняется в режиме insert, если set paste не установлен. Храните его в vimrc, чтобы не набирать его каждый раз и когда нам не нужно сопоставление, нам нужно избежать его с помощью ctrl + v, прежде чем вводить отображаемый char, как ( { и т.д.

Ответ 3

Я только что проверил ClosePairs, AutoClose, DelimitMate и AutoClose в Vim 7.4.131 на Ubuntu, используя Возбудитель.

Неудивительно, что все они работают.

Ваш вопрос должен быть перефразирован, так как вы не ищете "плагин автоматического закрытия, который работает в 7.4"... потому что все они делают. Что вы должны спросить: "Вот моя настройка, почему ни один из" плагинов автоматического закрытия "не работает для меня?".

Вопрос, на который можно ответить: "Это беспорядок. Начните с комментирования всего до строки 95".

Кроме того, Vim - очень стабильная среда: "не активно работать" не означает "не стоит пытаться". Напротив, на самом деле.

Ответ 4

Проголосовать за delimitMate до того, как сердитые моды закрывают вопрос о том, чтобы быть основанным на мнениях.

Ответ 5

Добавление нового кандидата: есть плагин под названием lexima. Он был введен в октябре 2014 года, поэтому он скорее новый. По словам автора, он отличается высокой настраиваемостью и точечной повторяемостью. Он также может быть настроен для автоматического закрытия пар def - end, как в рубине.

Здесь презентация автора в VimConf, которая проводится в Японии, которая сравнивает разные способы для достижения автоматических функций закрытия.

Ответ 6

xptemplate - это плагин snippets, который включает опцию для автозаполнения скобок/фигурных скобок /etc. Установите его и установите

let g:xptemplate_brace_complete = '([{'

в .vimrc. Они начинаются с одной строки, но если вы нажмете кнопку ввода, они правильно позиционируют их.