Để phát hiện ràng buộc readline giết một từ lạc hậu như bạn muốn, bạn có thể sử dụng lệnh sau trong thiết bị đầu cuối của mình:
bind -p | awk '/kill/ && /word/ && /backward/'
Trong bản cài đặt Ubuntu mặc định, đầu ra có thể là:
"\e\C-h": backward-kill-word
# shell-backward-kill-word (not bound)
Dòng thứ hai dường như không có tầm quan trọng tại thời điểm này, vì vậy hãy thử xem dòng đầu tiên có nghĩa là gì. Từ những gì tôi hiểu, các backward-kill-word
chức năng readline mà trên thực tế xóa tất cả các ký tự cho đến khi ký tự đặc biệt trước đó ( /
, ;
, ,
vv) được ràng buộc với \e\C-h
dãy phím. Bây giờ, theo thứ tự này \e
đại diện cho sự Escchủ chốt, \C
- các Ctrlphím, và \C-h
viết tắt của Ctrl+ hmà là tương đương trong trường hợp này với Backspacethen chốt.
Vì vậy, bạn đang tìm kiếm phím tắt Esc+ Ctrl+h tương đương với Esc+Backspace và do hành vi của xterm tạo ra Altkhóa để hoạt động như một ký tự meta và các ký tự meta được chuyển đổi thành một chuỗi hai ký tự với chính ký tự đi trước Esc(xem man xterm
) , tương đương với Alt+Backspace .
Bây giờ, nếu bạn không thích nó và bạn tiếp tục quên nó, bạn có thể sử dụng lệnh sau để tạo một lối tắt mới, giả sử Esc+ w, cho mục đích của bạn:
bind '"\ew": backward-kill-word'
Để làm cho lối tắt mới này liên tục mọi lúc cho tất cả các lệnh sử dụng đường đọc, hãy thêm dòng dòng sau vào ~/.inputrc
tệp của bạn :
"\ew": backward-kill-word
Xem help -m bind | sensible-pager
để biết thêm.
alt
+.
?