Вопрос vi для удаления "до следующего символа X"


Я понимаю, что vi имеет сочетания клавиш для удаления символов, слов и строк с различными параметрами.

Однако я не мог найти это:

  • удалить из курсора на следующий указанный символ

Например, я могу ввести du" ожидая, что редактор «удалит до следующего " символ найден "

Ближайшее, что я знаю, это d9w где 9 это количество слов для удаления.

Кто-нибудь знает возможно ли это?


154
2017-10-08 15:43


происхождения


Если вас интересуют Vi и Vim, у них есть свой сайт SE сейчас: Vi и Vim - dessert


ответы:


использование дтс, где с любой символ, например. для вас, вы хотите дт"

Это приведет к удалению не в том числе с,

Если у тебя есть:

delete until exclamation point!

И курсор находился в первом месте, и вы набрали дт!, вы получите:

delete!

Также Д.Ф.с,

Это удалит а также в том числе с,

С помощью Д.Ф.! на том же примере выше, даст вам:

delete

Почти любое «движение» может быть использовано для d, c, y и аналогичные команды.


249
2017-10-08 16:19



Точно, что я был после! Спасибо @Arcege! - kctang
Предположительно, мнемоника «до»? Хороший ответ. - overthink
Вы также можете удалить предыдущий экземпляр символа с заглавной версией команд перемещения. Возможно, более полезно для запятых - dT, а также dF,, - Joel Ostblom
Это не работает по нескольким строкам. - 0xcaff
Можно ли это сделать по целому ряду строк? - Jim


  • Для удаления вперед до символа «X» DTX

  • Для удаления вперед по символу «X» DFX

  • Чтобы удалить назад до символа «X» DTX

  • Чтобы удалить обратное через символ «X» DFX


38
2018-06-02 18:02





Ввод dt # (не команда a: используйте его как движение, подобное G)

будет удаляться с курсора до тех пор, пока не будет #. Вы можете заменить любой символ на #.


29
2018-06-21 02:44



Это правильный ответ! df # также удалит #. - Viet
искал это, это потрясающе - Nadeem Khedr


Похоже, @Arcege уже ответил на вопрос, но я сделал d/l для удаления до символа l; другие персонажи тоже будут работать.


15
2017-10-09 11:42



Это работает для вещей в новостях. - jasonszhao
Примечание: для этого необходимо ввести Enter. - Eric Lebigot


w переходит к следующему слову. l переходит к следующему символу.

Так что это d9l для удаления следующих 9 символов.


6
2017-07-10 19:48



Закрыть, l это правая стрелка Vim, поэтому вы фактически удаляете правую. Наоборот, d9h удалит 9 символов. - Walf