Я понимаю, что vi имеет сочетания клавиш для удаления символов, слов и строк с различными параметрами.
Однако я не смог найти это:
- удалить от курсора до следующего указанного символа
Например, я могу напечатать, du"
ожидая, что редактор «удалит, пока не "
будет найден следующий символ»
Ближайший я знаю, d9w
где 9
это количество слов , которые необходимо удалить.
Кто-нибудь знает возможно ли это?
Ответы:
Используйте dtc, где с любой символ, например, для вас, вы хотитеdt"
Это будет удалить до, но не включая c .
Если у тебя есть:
И курсор был в первом месте, и вы набрали dt!, вы получите:
Также dfc.
Это будет удалить до и в том числе c .
Использование df!в том же примере выше даст вам:
Просто о каком - либо «движении» может быть использовано для
d
,c
,y
и других подобных команд.источник
dT,
иdF,
.d/word
поиск доword
. За ним должен следовать ввод (чтобы закрыть поиск).Для удаления вперед до символа «X» введите dtX
Для удаления вперед через символ «X» введите dfX
Для удаления в обратном направлении до символа 'X' введите dTX
Для удаления в обратном направлении через символ «X» введите dFX
источник
Ввод dt # (не команда: используйте это как движение как G)
удаляет из курсора, но не включая #. Вы можете заменить любой символ на #.
источник
Похоже, @Arcege уже ответил на вопрос, но я сделал,
d/l
чтобы удалить до символаl
; другие персонажи тоже подойдут.источник
w
переходит к следующему слову.l
Переходит к следующему персонажу.Так что,
d9l
чтобы удалить следующие 9 символов.источник
l
это клавиша со стрелкой вправо Vim, так что вы на самом деле удаляете вправо. И наоборот,d9h
удалил бы 9 символов слева.