Odpowiedzi:
Powinieneś być w stanie użyć Esc, a następnie cofnij, aby usunąć słowa rozdzielone ukośnikami.
Możesz to zmienić, umieszczając to w tobie .bashrc:
bind '\C-f:unix-filename-rubout'
Teraz użyj, Ctrl+f aby robić, co chcesz.
C-w:..., domyślne zachowanie usuwania do następnego miejsca nadal się uruchamia. Na innym klawiszu (jak F), jeśli działa dobrze.
stty -a? czy masz control-w jako domyślny znak dla werase? Jeśli usuniesz to ustawienie z tty, używając comman stty werase undef, to czy bash działa zgodnie z oczekiwaniami?
W przypadku tego konkretnego problemu możesz także użyć:
Alt + Backspace
$ cd /home/me/test/a_dir/ # Alt + Backspace
$ cd /home/me/test/ # Alt + Backspace
$ cd /home/me/ # ...
Dobry odnośnik: Przygody z wymazywaniem słowa bash
Ctrl+wlub Ctrl + B lub coś unix-filename-rubout, ale jest to o wiele lepiej, że jest wbudowany Oprawa: M-Backspace (Alt + Backspace lub Esc Backspace)
Dzięki bash możesz uzyskać pożądany efekt, umieszczając w pliku ~ / .bashrc następujące:
bind '"\C-w":backward-kill-word'
Naciśnij CTRL+Vi kombinację klawiszy, aby zobaczyć, jak wygląda emulator terminala. Na przykład CTRL+bkspmożna interpretować inaczej na różnych terminalach, np . ^HLub ^?. ^Charakter jest taki sam jak CTRL.
/jako dodatkowy znak stop, a nie sposób na powiązanie komendy delete-word-polecenie z innym klawiszem. Zredagowałem swoje pytanie
^F- ale użycie "\^F"w powyższym skrypcie nie działa
stty werase undefpowstrzyma cię od używania Cw w dowolnym programie (wiązanie pozwoli ci używać w trybie readline)