13

В режиме bash emacs можно ли удалить до предыдущего символа косой черты? Например, если я ввел команду cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path и хочу просто удалить reallylongincorrectfolder .Есть ли какой-нибудь ярлык? Это очень общий сценарий для меня в bash. Что-то вроде dF<char> в vi?

3 ответа3

8

Alt - Backspace и Ctrl - w обычно отображаются в backward-kill-word , что и делает. Если вы хотите выяснить, с чем это связано в вашей системе (если что-нибудь), запустите bind -P | grep '^backward-kill-word' .

Как объясняет @Barmar, это отличается от unix-word-rubout , который удаляет к предыдущей границе пространства.

8
bind -P |grep unix-filename-rubout

Чтобы проверить связывание клавиш, например, с. Ctrl - b:

bind \\C-b:unix-filename-rubout

Для постоянного использования добавьте его в ~/.inputrc

4

Поместите это в ваш .inputrc и запустите новую оболочку:

C-b:unix-filename-rubout

Ctrl - b теперь стирает назад до следующего слеша.

Nirvana!

Не забывайте, что Ctrl - X Ctrl - E запустит ваш редактор, так что вы сможете с легкостью редактировать сложную командную строку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .