Vim: удаление следующего символа, когда следующий символ не находится на одной строке

Я уверен, что меня осмеятся за то, что вы зададите двойной вопрос; кто-то должен был задать вопрос раньше! Но за час поиска я этого не нашел. Я должен искать неправильную вещь.

В Vi (или Vim) я могу удалить все символы до символа } через последовательность клавиш dt} (или df}, если я также хочу удалить скобку).

Однако это работает, только если символ } находится в текущей строке. Я хочу сделать все до следующего }, даже если это первое вхождение на следующей строке.

Я думаю что-то вроде d/} (где слэш /}<enter> в любом другом контексте приведет меня к следующему вхождению }). По понятным причинам это не сработает, но я надеюсь, что намерение будет ясным.

== EDIT ==

Хорошо, все в порядке... извините. Вы в порядке, он работает (на моей машине с чистой установкой). может быть некорректным отображением в файле конфигурации, но он не работает на моем другом.

Позорная голова

Ответы

Ответ 1

d/}<cr> работает. Это канонический способ удаления до следующего }, который не находится на одной строке. Кстати, d?{<cr> делает то же самое, но в противоположном направлении.

Ответ 2

Этот плагин должен сэкономить вам несколько нажатий клавиш. Он расширяет функциональность fFtT;; поэтому они работают по строкам.

Ответ 3

Если символ } или { размещен в начале строки, одним из способов может быть использование движений текстового объекта, поэтому может быть полезна команда типа d]].