Видалення Bash читання рядків до попередньої косої риски


15

Чи є в режимі bash emacs видалення до попереднього косого символу? Наприклад, якщо я ввів команду cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathі хочу просто видалити. reallylongincorrectfolderЧи є ярлик? Це дуже комунальний сценарій для мене в баші. Щось на кшталт dF<char>in 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 (або запустити якусь іншу програму, яка використовує бібліотеку читання GNU).
Croad Langshan

11

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

Як пояснив @Barmar , це відрізняється від того unix-word-rubout, що видаляється до попередньої межі простору.


Але це вб'є все слово .. Я хочу вбити лише до останньої косої риси
woodstok

Тут видаляється лише остання коса риса. Slash - це один із роздільників слів за замовчуванням. Ви впевнені, що використовуєте Bash?
l0b0

Мій поганий .. Alt-Backspace видаляє його до останньої косої риси. Яка різниця між ALt-BackSpace і Ctrl-W?
Вудсток

3
Ctl-w зазвичай пов'язаний з unix-word-rubout: Убити слово за точкою, використовуючи пробіл як границю слова.
Бармар

2
Це точно не працює. "Слова складаються з буквено-цифрових символів (літери та цифри)". Значить, він зупиниться на набагато більше, ніж просто наріз. За замовчуванням відключення unix-filename-ruboutтрохи краще, оскільки він зупиниться на пробілі та косій частині.
Sparhawk

6

Помістіть це у свій .inputrcта запустіть нову оболонку:

C-b:unix-filename-rubout

Ctrl- bтепер стирається назад до наступної косої риски.

Нірвана!

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.