Если у вас есть блок текста, ограниченный скобками или кавычками, вы можете использовать
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.
^^^^^^^^^