Câu trả lời:
Bạn sẽ có thể sử dụng Esc, sau đó xóa lùi để xóa các từ được phân cách bằng dấu gạch chéo.
Bạn có thể thay đổi điều này bằng cách đặt cái này vào bạn .bashrc:
bind '\C-f:unix-filename-rubout'
Bây giờ sử dụng Ctrl+f
để làm những gì bạn muốn.
C-w:...
, hành vi mặc định xóa sang không gian tiếp theo vẫn bắt đầu. Trên một khóa khác (như F) nếu hoạt động tốt.
stty -a
? Bạn có control-w làm char mặc định cho werase không? Nếu bạn xóa cài đặt đó khỏi tty, bằng dấu phẩy stty werase undef
, thì bash có hoạt động như mong đợi không?
Đối với vấn đề cụ thể này, bạn cũng có thể sử dụng:
Alt + Backspace
$ cd /home/me/test/a_dir/ # Alt + Backspace
$ cd /home/me/test/ # Alt + Backspace
$ cd /home/me/ # ...
Tham khảo tốt: Cuộc phiêu lưu với xóa từ bash
Ctrl+w
hoặc Ctrl + b hoặc một cái gì đó unix-filename-rubout
, nhưng tốt hơn là có một ràng buộc tích hợp: M-backspace (Alt + backspace hoặc Esc backspace)
Với bash, bạn có thể có được hiệu ứng mong muốn, đặt phần sau vào tệp ~ / .bashrc của bạn:
bind '"\C-w":backward-kill-word'
Nhấn CTRL+V
và tổ hợp phím của bạn để xem giao diện của trình giả lập thiết bị đầu cuối của bạn. Ví dụ, CTRL+bksp
có thể được giải thích khác nhau trên các thiết bị đầu cuối khác nhau, ví dụ ^H
hoặc ^?
. Các ^
nhân vật là giống như CTRL
.
/
một ký tự dừng bổ sung, không phải là một cách để ràng buộc lệnh xóa từ trên một khóa khác. Tôi đã chỉnh sửa câu hỏi của mình
^F
- nhưng sử dụng "\^F"
trong tập lệnh ở trên không hoạt động
stty werase undef
sẽ ngăn bạn sử dụng Cw trong bất kỳ chương trình nào (liên kết sẽ cho phép bạn sử dụng ở chế độ đọc)