ярлык vi для удаления & ldquo; до следующего символа X & rdquo;

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

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

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

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

Наиболее близким из известных мне является d9w, где 9 - количество слов для удаления.

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

196
задан 23 April 2017 в 14:13

6 ответов

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

  • Для удаления вперед через символ «X» типа dfX

  • Для удаления в обратном направлении до символа 'X' введите dTX

  • Удалить назад через символ 'X' типа dFX

0
ответ дан 23 April 2017 в 14:13

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

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

0
ответ дан 23 April 2017 в 14:13

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

. Это приведет к удалению до , но не , включая c .

]

Если бы у вас было:

delete until exclamation point!

И курсор был в первом пробеле, и вы ввели dt ! , вы получите: [ 1114]

delete!

Также df c .

Это удалит до и , включая c .

Использование df ! в том же примере выше даст вам:

delete

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

0
ответ дан 23 April 2017 в 14:13

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

Так что d9l удалить следующие 9 символов.

0
ответ дан 23 April 2017 в 14:13

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

0
ответ дан 23 April 2017 в 14:13

Я предлагаю использовать удалить по шаблону,

d/<шаблон>

d — действие удаления

/ — знак поиска vim

, например, ниже приведена строка подключения к MySQL. Я хочу изменить пароль redhat на новый

root:redhat@tcp(localhost:3306)/?parseTime=True

В командном режиме я нажимаю w (перейти к следующему слову), курсор переместится на «:», нажмите w еще раз, чтобы переместить курсор на первый символ r пароля redhat. теперь нажмите d/@, чтобы удалить любые символы до @, что в этом случае удалит красную шляпу. d/@tcp лучше, если в строке более одного @, более точный шаблон более точен.

2
ответ дан 12 January 2021 в 15:24

Другие вопросы по тегам:

Похожие вопросы: