Vim: изменение / удаление до конца «блока» - PullRequest
17 голосов
/ 16 ноября 2011

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

ci"
da(

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

Ответы [ 4 ]

26 голосов
/ 16 ноября 2011

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

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

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

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

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

14 голосов
/ 17 ноября 2011

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

6 голосов
/ 16 ноября 2011

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

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

Например:

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

4 голосов
/ 16 ноября 2011

Я не знаю общего способа сделать то, что вы хотите, но, предполагая, что вы на k in:

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