Выберите текст между двойными кавычками по нескольким строкам в VIM
Скажем, у меня есть следующий текст:
"test 1
test 2
test 3"
Я хочу выбрать все между кавычками. Я использовал vi ", но он не работает, он работает только тогда, когда текст находится в одной строке. С другой стороны, когда у меня есть что-то вроде этого:
(test1,
test 2)
и я набираю vi(
, который выбирает весь текст.
Любые указатели будут очень благодарны. Благодаря
Ответы
Ответ 1
Текстовые объекты, которые ограничены одинаковыми символами ("
, '
), работают только внутри строки, поскольку в противном случае было бы трудно определить, какую область выбора выбрать.
Если вам нужен такой многострочный текстовый объект, вы должны определить свою собственную альтернативу. Плагины вроде kana/vim-textobj-user или мой собственный плагин CountJump помогают вам с этим.
Ответ 2
Встроенный текст цитаты и двойной кавычки не пересекает границы линии. Однако вы можете использовать поиск с операторами vim. например.
y/"<cr>
c/"<cr>FOO<esc>
d?"<cr>
Ответ 3
Плагин vim-textobj-quotes
делает именно то, что вы ищете: https://github.com/beloglazov/vim-textobj-quotes
Он предоставляет текстовые объекты для ближайших пар кавычек любого типа и поддерживает кавычки, охватывающие несколько строк. Используя только iq
или aq
, вы можете управлять содержимым одиночных ('), двойных (") или обратных (`) кавычек, которые в настоящее время окружают курсор, перед курсором или сзади ( в этом порядке предпочтения). Иными словами, он перескакивает вперед или назад, когда это необходимо для достижения котировок.
Пожалуйста, просмотрите приведенную выше страницу github для более подробной информации.