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

134

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

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

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

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

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

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

    
задан kctang 08.10.2011 в 17:43
источник

5 ответов

222

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

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

Если у вас есть:

delete until exclamation point!

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

delete!

Также df c .

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

Используя df ! в том же примере выше, вы получите:

delete

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

    
ответ дан Arcege 08.10.2011 в 18:19
источник
29
  • Для удаления вперед до символа «X» введите dtX

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

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

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

ответ дан Mark Wong 02.06.2016 в 20:02
27

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

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

ответ дан Jessie 21.06.2013 в 04:44
11

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

    
ответ дан zpletan 09.10.2011 в 13:42
5

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

Таким образом, d9l удаляет следующие 9 символов.

    
ответ дан Shun Zhang 10.07.2014 в 21:48