Vim: изменение/удаление до конца "блока" - программирование
Подтвердить что ты не робот

Vim: изменение/удаление до конца "блока"

Если у вас есть блок текста, ограниченный скобками или кавычками, вы можете использовать

ci"
da(

и т.д., чтобы изменить этот блок текста. Но есть ли способ изменить или удалить из курсора в конец этого блока (в способе cw делает это для слов)?

4b9b3361

Ответ 1

Ответ Benoit на использование t f T и F - лучший способ, о котором я знаю. Когда дело доходит до удаления в конец скобки, вы можете использовать ]). Это будет учитывать любые вложенные скобки. Также есть соответствующие [(, ]} и [{.

Ответ 2

Используйте ct) для " c или t закрывать закрывающиеся скобки.

Движения Вима с t, f, T и F очень, очень полезны. :help t, :help f.

Обновление: Если есть вложенные круглые скобки, в которых вы находитесь:

  • vi)o`` будет выбирать до закрытия parenthese (выберем внутри круглых скобок, затем переключимся на другой конец выделения и переместим его туда, где вы были (``)
  • vi)`` будет выбирать до открытия parenthese (тот же механизм, но без необходимости o)

Первый работает только потому, что когда вы делаете vi), помните о прыжке курсора, а `` переходит в предыдущее местоположение курсора. Кажется, что o в визуальном режиме не влияет на это.

Ответ 3

См. раздел Выбор текстовых объектов" справки Vim. Вы можете определить последовательности выбора там с помощью операций удаления и изменения. Он показывает, как выбирать блоки, ограниченные одним из следующих (и более):

  • {}
  • ()
  • Цитаты (' or ")

Например:

d} и c} будут удаляться и меняться от курсора до конца абзаца.

Ответ 4

Я не знаю общего способа делать то, что вы хотите, но, предполагая, что вы находитесь на 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.
     ^^^^^^^^^