Удаление строки чтения Bash до предыдущего слэша


15

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

Ответы:


9
bind -P |grep unix-filename-rubout

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

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

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


2
Для того, чтобы добавить его ~/.inputrc, добавьте такую строку к этому файлу: "\C-b": unix-filename-rubout. Чтобы увидеть эффект, вам нужно запустить новую оболочку bash (или запустить другую программу, использующую библиотеку readline GNU).
— Croad Langshan

11

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

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


Но это убьет все слово ... Я хочу убить только до последнего
— удара

Это удаляет только до последней косой черты здесь. Косая черта является одним из разделителей слов по умолчанию. Вы уверены, что используете Bash?
— 10

Мой плохой .. Alt-Backspace удаляет его до последнего слэша. В чем разница между ALt-BackSpace и Ctrl-W?
— Вудсток

3
Ctl-w обычно привязан к unix-word-rubout: убить слово за точкой, используя пробел в качестве границы слова.
— Бармар

2
Это не совсем работает. «Слова состоят из буквенно-цифровых символов (букв и цифр)». Следовательно, это остановится на гораздо большем, чем просто косая черта. Unbound по умолчанию unix-filename-ruboutнемного лучше, так как он остановится на пустом месте и косой чертой.
— Sparhawk

6

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

C-b:unix-filename-rubout

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

Nirvana!

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.