Если у вас есть блок текста, ограниченный скобками или кавычками, вы можете использовать
ci"
da(
и т.д., чтобы изменить этот блок текста. Но есть ли способ изменить или удалить из курсора в конец этого блока (в способе cw делает это для слов)?
Если у вас есть блок текста, ограниченный скобками или кавычками, вы можете использовать
ci"
da(
и т.д., чтобы изменить этот блок текста. Но есть ли способ изменить или удалить из курсора в конец этого блока (в способе cw делает это для слов)?
Ответ Benoit на использование t f T и F - лучший способ, о котором я знаю. Когда дело доходит до удаления в конец скобки, вы можете использовать ]). Это будет учитывать любые вложенные скобки. Также есть соответствующие [(, ]} и [{.
Используйте ct) для " c или t закрывать закрывающиеся скобки.
Движения Вима с t, f, T и F очень, очень полезны. :help t, :help f.
Обновление: Если есть вложенные круглые скобки, в которых вы находитесь:
vi)o`` будет выбирать до закрытия parenthese (выберем внутри круглых скобок, затем переключимся на другой конец выделения и переместим его туда, где вы были (``)vi)`` будет выбирать до открытия parenthese (тот же механизм, но без необходимости o)Первый работает только потому, что когда вы делаете vi), помните о прыжке курсора, а `` переходит в предыдущее местоположение курсора. Кажется, что o в визуальном режиме не влияет на это.
См. раздел Выбор текстовых объектов" справки Vim. Вы можете определить последовательности выбора там с помощью операций удаления и изменения. Он показывает, как выбирать блоки, ограниченные одним из следующих (и более):
{}()' or ")Например:
d} и c} будут удаляться и меняться от курсора до конца абзаца.
Я не знаю общего способа делать то, что вы хотите, но, предполагая, что вы находитесь на k в:
The (quick (brown) fox) jumps over the lazy dog.
v2t) будет выбирать:
(The quick (brown) fox) jumps over the lazy dog.
^^^^^^^^^^^^^
Если вы не хотите считать, вы можете связать t), чтобы развернуть свой выбор: vt)t) сначала выберет:
(The quick (brown) fox) jumps over the lazy dog.
^^^^^^^^
то
(The quick (brown) fox) jumps over the lazy dog.
^^^^^^^^^^^^^
vT( будет выбирать:
(The quick (brown) fox) jumps over the lazy dog.
^^^^^^^^^