Ответы:
Вы должны быть в состоянии использовать Esc, затем Backspace, чтобы удалить слова, разделенные косой чертой.
Вы можете изменить это, поместив это в вас .bashrc:
bind '\C-f:unix-filename-rubout'
Теперь используйте, Ctrl+f чтобы делать то, что вы хотите.
C-w:..., то по-прежнему включается поведение удаления по умолчанию на следующий пробел. На другом ключе (например, F), если работает нормально.
stty -a? у вас есть control-w как символ по умолчанию для werase? Если вы удалите этот параметр из tty с помощью comman stty werase undef, то bash будет работать так, как ожидается?
Для этой конкретной проблемы вы также можете использовать:
Alt + Backspace
$ cd /home/me/test/a_dir/ # Alt + Backspace
$ cd /home/me/test/ # Alt + Backspace
$ cd /home/me/ # ...
Хорошая ссылка: Приключения со стиранием слова Баша
Ctrl+wили Ctrl + b или что-то unix-filename-rubout, но гораздо лучше, если есть встроенная привязка: M-Backspace (Alt + Backspace или Esc Backspace)
С помощью bash вы можете получить желаемый эффект, поместив в файл ~ / .bashrc следующее:
bind '"\C-w":backward-kill-word'
Нажмите CTRL+Vи комбинацию клавиш, чтобы увидеть, как выглядит ваш эмулятор терминала. Например, CTRL+bkspможет интерпретироваться по-разному на разных терминалах, например ^Hили ^?. ^Характер такой же , как CTRL.
/в качестве дополнительного символа остановки, а не способ привязать команду удаления слова к другому ключу. Я отредактировал свой вопрос
^F- но использование "\^F"в приведенном выше сценарии не работает
stty werase undefэто остановит вас от использования Cw в любой программе (bind позволит вам использовать в readline)