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

В vim есть ли плагин для использования% для соответствия соответствующей двойной кавычки (")?

Клавиша % - одна из лучших функций vim: она позволяет вам перейти от { в }, [ к ] и так далее.

Однако он не работает по умолчанию с кавычками: либо ", либо ', вероятно, потому, что кавычки открытия и закрытия одного символа, что затрудняет реализацию.

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

Прежде чем я попытаюсь реализовать его сам, я просто хотел бы знать, есть ли у кого-нибудь еще?

4b9b3361

Ответ 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