Есть ли в bash и zsh ярлык для удаления одного компонента пути? Например, если я печатаю ls ~/local/color/
, а курсор находится в конце строки, есть ли ярлык для удаления color/
в конце? В идеале мне нужны решения как в режиме vi, так и в режиме emacs.
19
bindkey [key] vi-backward-kill-word
Там также
unix-filename-rubout
дляReadline
!источник
unix-filename-rubout
является правильным ответом на заданный вопрос, поскольку он удаляет косую черту или пробел, тогда какAlt-BkSpc
остановится на таких символах, как дефис, подчеркивание, точка и т. Д.По умолчанию bash (и я предполагаю, что zsh) будет в режиме emacs. Вы можете попробовать что-то вроде этого:
Esc + bвернет курсор на одно слово. Ctrl + kудалит до конца строки.
Большинство современных оболочек (например, bash) реализуют расширенные функции редактирования командной строки. Эти команды либо близки к редактированию emacs (Ctrl + A для начала строки, Ctrl + E для конца строки, ...).
Если вы знакомы с vi-подобными редакторами, вы можете попробовать включить vi-mode.
set -o vi
Он предоставляет вашей оболочке vi-подобные режимы (режим команд / режим вставки), и вы получаете доступ к стандартным командам (d для удаления, r для замены, ...)
В режиме Vi, вот как вы будете делать то, что вы описали:
источник
db
его в bash. Я также нашелvi-backward-kill-word
в zsh то, что я хочу, и это более удобно, чем установить vi-mode в bash. Но я все еще хочу найти ярлык для режима emacs для этой цели в bash.db
есть в некоторых случаях.