Удаление строки чтения 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.