Я уверен, что когда-то был плагин для такого рода вещей, но теперь, когда он мне нужен, я не могу найти его (естественно), поэтому я просто спрошу красиво и просто.
Какой самый простой способ выбрать между скобками, или кавычками, или вообще списком совпадающих символов?
write ( *, '(a)' ) 'Computed solution coefficients:'
Например, здесь я бы хотел выбрать (a)
, или Computed solution coefficients:
.
Меня не интересуют многострочные, просто случаи, которые происходят в одной строке.
yi"
выбирайте все в кавычкахci(
илиci)
делает то, что искал. Спасибо. Я до сих пор не совсем понимаюi
в этом случае, но кого это волнует, пока это работает, верно? :)Для выбора между одинарными кавычками я обычно делаю
vi'
(«выбрать внутренние одинарные кавычки»).Внутри блока скобок я использую
vib
(«выбрать внутренний блок»)Внутри блока фигурных скобок вы можете использовать
viB
(«заглавная буква B»)Чтобы сделать выбор «включительно» (выберите также кавычки, скобки или фигурные скобки), вы можете использовать
a
вместоi
.Вы можете прочитать больше о выборе объектов Text в руководстве или
:help text-objects
в vim.источник
Этот метод выбора встроен и хорошо описан в справке Vim. Он охватывает теги XML и многое другое.
См
:help text-objects
.источник
Для выбора в одинарных кавычках используйте
vi'
.Для выбора в скобках используйте
vi(
.источник
ci'
илиci(
для изменения вместо визуального выбора. Но это именно то, что я хотел. Спасибо :)%vi(
или%vib
Используйте стрелки или,
hjkl
чтобы перейти к одному из выражений в скобках, затемv
выберите визуальный режим (т. Е. Выберите) , а затем перейдите%
к другой скобке.источник
Напишите функцию Vim в .vimrc, используя
searchpair
встроенную функцию:( http://vimdoc.sourceforge.net/htmldoc/eval.html )
источник
Я бы добавил детали к наиболее проголосовавшему ответу:
Если вы используете gvim и хотите скопировать в буфер обмена, используйте
"+<command>
Копировать весь контент в скобках (или в скобках или в фигурных скобках)
Например:
"+yi}
скопирует в буфер обмена все содержимое, заключенное в фигурные скобки вашего курсора.источник
y
.Я сделал плагин
vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotesОн предоставляет текстовые объекты для ближайших пар цитат любого типа. Использование только
iq
илиaq
позволяет работать с содержимым одинарных ('), двойных (") или обратных (`) кавычек, которые в данный момент окружают курсор, находятся перед курсором или позади (в этом порядке предпочтений) Другими словами, он прыгает вперед или назад, когда необходимо достичь кавычек.Это легче понять, посмотрев на примеры (курсор показан с помощью
|
):foo '1, |2, 3' bar
:; после нажатияdiq
:foo '|' bar
foo| '1, 2, 3' bar
:; после нажатияdiq
:foo '|' bar
foo '1, 2, 3' |bar
:; после нажатияdiq
:foo '|' bar
foo '1, |2, 3' bar
:; после нажатияdaq
:foo | bar
foo| '1, 2, 3' bar
:; после нажатияdaq
:foo | bar
foo '1, 2, 3' |bar
:; после нажатияdaq
:foo | bar
Приведенные выше примеры приведены для одинарных кавычек, плагин работает одинаково для двойных (") и обратных (`) кавычек.
Вы также можете использовать любые другие операторы:
ciq
,diq
,yiq
,viq
и т.д.Пожалуйста, посмотрите на страницу GitHub, на которую есть ссылки, для получения более подробной информации.
источник
Простая раскладка ключей в vim решит эту проблему. map viq F ”lvf” hh Эта команда отображает viq на клавиши для поиска между кавычками. Замените «любым персонажем и создайте свои раскладки клавиш». Вставьте это в vimrc во время запуска, и вы сможете использовать его каждый раз.
источник