Как многие из вас, вероятно, знают, вы можете использовать %
поиск вперед в строке, чтобы найти следующую парную скобку / скобку / парен и перейти к соответствующему партнеру:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Я надеюсь, что есть аналогичный ключ, который ищет в обратном направлении в строке, например:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
Большинство команд vim имеют как вперёд, так и вперёд, так что, похоже, так и должно быть. У него нет партнера? Если да, то , что , поскольку , как только это на спаренном характер , они будут действовать так же?
vim
keyboard-shortcuts
Kevin
источник
источник
%
не только выполняется поиск парных скобок в той же строке, но и дальше по файлу. Мне это особенно нравится для циклов и т. Д. На любом языке программирования.g%
команду, которая похожа на то, что вы ищете.Ответы:
Если вы действительно хотите искать в обратном порядке общие совпадающие символы, вы можете использовать одну из этих
vim
специфических команд:[(
... (перейти к предыдущему непревзойденному(
персонажу)[{
... (перейти к предыдущему непревзойденному{
персонажу)Эти две команды имеют соответствующих партнеров по пересылке:
])
... (перейти к следующему непревзойденному)
персонажу)]}
... (перейти к следующему непревзойденному}
персонажу)Есть и другие похожие команды для
#ifdef
и для комментариев на C.Вы можете найти больше
vim
, используя команду:help %
.источник
%
этим, вы пойдете в обе стороны - найти подходящего партнера. Также, если внутри блока, то вышеуказанные команды найдут соответствующее совпадение.% найти подходящую скобку. Так что, если вы включены (или {он будет искать вперед.
Если вы находитесь на} или) он будет искать в обратном направлении.
% не направленный, он просто находит подходящую скобку.
источник
Я только что попробовал
:map ^] ^%%
(с^]
= Ctrl+ v Ctrl+ 5здесь, как аналогия с%
= Shift+ 5).Он работает для данного конкретного случая, но поскольку он не выполняет поиск в обратном направлении от курсора, он всегда выбирает первую открытую скобку в строке и оставляет курсор в начале строки, если не находит соответствия ,
Это лучшее решение; это некрасиво и, вероятно, есть много возможностей для упрощения, но я думаю, что семантика совершенно правильная (не перемещает курсор, если нет открытой пары, и перемещается к первой открытой части перед текущей колонкой).
за
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnисточник
[(
будет работать так же хорошо и не требуетmap
.