В vim есть ли плагин для использования% для соответствия соответствующей двойной кавычки (")?
Клавиша % - одна из лучших функций vim: она позволяет вам перейти от {
в }
, [
к ]
и так далее.
Однако он не работает по умолчанию с кавычками: либо "
, либо '
, вероятно, потому, что кавычки открытия и закрытия одного символа, что затрудняет реализацию.
Подумав немного больше о проблеме, я убежден, что она должна быть реализована путем подсчета, является ли число предыдущих кавычек нечетным или четным и, соответственно, перескакивая на предыдущую или следующую цитату.
Прежде чем я попытаюсь реализовать его сам, я просто хотел бы знать, есть ли у кого-нибудь еще?
Ответы
Ответ 1
В зависимости от вашей причины для этого может быть лучший способ выполнить то, что вы ищете. Например, если у вас есть следующий код:
foo(bar, "baz quux")
^
и ваш курсор находится в ^
, и вы хотите заменить все внутри кавычек чем-то другим, используйте ci"
. Это использует Vim текстовые объекты для изменения (c
) всего внутри (i
) кавычек ("
) и помещает вы в режиме вставки:
foo(bar, "")
^
Затем вы можете начать вводить текст замены. Есть много других текстовых объектов, которые действительно полезны для такого рода ярлыков. Изучите (и используйте) одну новую команду Vim в неделю, и вы станете экспертом в кратчайшие сроки!
Ответ 2
Ответ Greg был очень полезен, но мне также нравятся команды "f" и "F", которые перемещают курсор вперед и назад к символу, который вы нажимаете после команды.
Итак, нажмите f ", чтобы перейти к следующему символу и F", чтобы перейти к предыдущему.
Ответ 3
Я хотел бы расширить ответ Грега и ввести surround.vim.
Предположим, что вместо редактирования содержимого ваших кавычек вы хотите изменить сами символы "
. Допустим, вы хотите перейти от двойных кавычек к одиночным кавычкам.
foo(bar, "baz quux")
^
Плагин объемного звучания позволяет вам изменить его на
foo(bar, 'baz quux')
^
выполнив следующее: cs"'
(который гласит: "изменить окружающие двойные кавычки на одиночные кавычки" ).
Вы также можете удалить отметки кавычек, просто выполнив: ds"
(который гласит: "удалить окружающие двойные кавычки" ).
Существует хорошее введение в плагин окружения здесь.
Ответ 4
Я знаю, что этот вопрос старый, но вот плагин, чтобы использовать% для соответствия соответствующей двойной кавычки:
https://github.com/airblade/vim-matchquote