Ответы:
Вы должны быть в состоянии использовать 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)