Есть ли в Vim функциональность, позволяющая добавлять круглые скобки вокруг выделенного текста?
Например, если я выделю n = getchar()
в if (n = getchar() == '\n')
, я бы хотел заключить это в скобки.
Есть ли в Vim функциональность, позволяющая добавлять круглые скобки вокруг выделенного текста?
Например, если я выделю n = getchar()
в if (n = getchar() == '\n')
, я бы хотел заключить это в скобки.
В дополнение к предложению Дмитрия о плагине объемного звучания, добавление круглых скобок вокруг выделенного текста может быть сделано с помощью следующей команды:
xi()<Esc>P
Вы можете установить карту в визуальном режиме, используя (например) \s
, добавив в файл ~/.vimrc
:
xnoremap <leader>s xi()<Esc>P
Вы должны удивительные и должны иметь плагин объемного звучания. Затем он с радостью сделает то, что вы хотите, если вы выделите текст и Sb
(объемные скобки) или S)
(обратите внимание на заглавную S!).
Он на самом деле может делать много окружения: различные кавычки, теги и т.д. Он позволяет вам поместить курсор в двойные кавычки и заменить двойные кавычки на одинарные кавычки, набрав: cs"'
(change -round "
to '
). Или вы можете полностью удалить кавычки, набрав ds"
(delete -round "
).
Читайте документы по ссылке, это действительно круто!
lh-brackets просто связывает (
чтобы окружить выделение скобками. В отличие от Surround, он не следует обычной философии связывания клавиш vim, как это делает. Вместо этого требуется меньше ключей.
В противном случае есть много способов продолжить. Если вы не возражаете испортить неназванный регистр, вы также используете s(^R")<esc>
(^R
как CTRL-R
)
Основываясь на ответе dotancohens, я добавил в свой .vimrc
:
xnoremap <leader>( <ESC>`>a)<ESC>`<i(<ESC>
Вы можете легко создавать аналогичные сопоставления для [], {} и т.д. Он работает путем перехода к начальным и конечным маркерам, неявно установленным после завершения визуального режима. Таким образом, выбор целых строк добавит парены в начале / конце первой / последней строки; он не перезапишет ваш регистр янки; и он оставит курсор прямо перед открытием парен.