Я понимаю, что в vi есть сочетания клавиш для удаления символов, слов и строк с различными параметрами.
Однако я не смог найти это:
Например, я могу напечатать du"
ожидая, что редактор «удалит, пока не будет найден следующий "
символ»
Наиболее близким из известных мне является d9w
, где 9
- количество слов для удаления.
Кто-нибудь знает, возможно ли это?
Для удаления вперед до символа «X» типа dtX kbd>
Для удаления вперед через символ «X» типа dfX kbd>
Для удаления в обратном направлении до символа 'X' введите dTX kbd>
Удалить назад через символ 'X' типа dFX kbd>
Ввод dt # (не команда:, используйте его как движение, как G)
будет удалять из курсора до, но не включая #. Вы можете заменить любой символ на #.
Используйте dt kbd> c kbd>, где c - любой символ, например, для вас вы хотите dt kbd> " kbd>
. Это приведет к удалению до , но не , включая c .
]Если бы у вас было:
delete until exclamation point!
И курсор был в первом пробеле, и вы ввели dt kbd> ! Kbd>, вы получите: [ 1114] Также df kbd> c kbd>. Это удалит до и , включая c . Использование df kbd> ! Kbd> в том же примере выше даст вам: Just о любом «движении» могут быть использованы для delete!
delete
d
, c
, y
и аналогичных команд.
w
переходит к следующему слову. l
перемещается к следующему персонажу.
Так что d9l
удалить следующие 9 символов.
Похоже, @Arcege уже ответил на вопрос, но я сделал d/l
, чтобы удалить до символа l
; другие персонажи тоже подойдут.
Я предлагаю использовать удалить по шаблону
,
d/<шаблон>
d — действие удаления
/ — знак поиска vim
, например, ниже приведена строка подключения к MySQL. Я хочу изменить пароль redhat
на новый
root:redhat@tcp(localhost:3306)/?parseTime=True
В командном режиме я нажимаю w
(перейти к следующему слову), курсор переместится на «:», нажмите w
еще раз, чтобы переместить курсор на первый символ r
пароля redhat
. теперь нажмите d/@
, чтобы удалить любые символы до @
, что в этом случае удалит красную шляпу
. d/@tcp
лучше, если в строке более одного @
, более точный шаблон более точен.