Автоматические закрывающие кронштейны для Vim
Есть ли какой-либо плагин WORKING для Vim 7.4, который автоматически закрывает скобки ('{}', '[]', '()') и может вставлять некоторые возвращаемые каретки (для '{}' по крайней мере)?
Я знаю, что этот вопрос задавался довольно много раз, но ни один из ответов не работает в vim 7.4, или плагин не был обновлен или что-то в этом роде.
До сих пор я пробовал vim-smartinput, autoclose и delimitmate, и NONE из них удалось вставить любые закрывающие символы, даже если я включил плагины, и они в противном случае выглядят активными. Я не знаю, были ли какие-то изменения в vim, которые каким-то образом ломают эти плагины. Ни один из этих плагинов, по-видимому, не обновляется в течение года. Любые рабочие решения, которые будут работать с vim 7.4?
Ответы
Ответ 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
. Они начинаются с одной строки, но если вы нажмете кнопку ввода, они правильно позиционируют их.