Có một readline
chức năng có lẽ không bị ràng buộc với tổ hợp phím được gọi là kill-whole-line
sẽ giết toàn bộ dòng thay vì chỉ giết phần trước con trỏ ( unix-line-discard
phần nào đó là một cách hiểu sai và bị ràng buộc với Ctrl- u).
Bạn có thể liên kết nó với bất kỳ tổ hợp phím có sẵn. Tôi thích ShiftAlt- Uvì đó là một chức năng liên quan. Tổ hợp phím đó có thể bị ràng buộc với do-lowercase-version
điều đó có nghĩa là nó làm bất cứ điều gì mà phiên bản chưa được thực hiện (trong trường hợp này upcase-word
). Vì chúng ta không thực sự cần hai chìa khóa để làm điều đó, hãy sử dụng khóa đó.
Bạn có thể thử nó tại dòng lệnh bằng cách tạo ràng buộc theo cách này:
bind '"\eU":kill-whole-line'
hoặc làm cho nó bền bỉ bằng cách đặt dòng này trong ~/.inputrc
tệp của bạn :
"\eU":kill-whole-line
Để hoàn tác một Ctrl- uhoặc ShiftAlt- U(hoặc bất kỳ thao tác nào có thể hoàn tác), nhấn Ctrl- Shift- _(gạch dưới) hoặc Ctrl- x Ctrl- u(hai lần nhấn phím). Hoặc bạn có thể dán lại (yank) những gì bạn đã giết bằng cách nhấn Ctrl- ycó thể lặp lại nếu bạn muốn nhiều bản sao của văn bản đó.
Nhân tiện, nếu bạn muốn giết văn bản từ con trỏ đến cuối dòng, bạn có thể nhấn Ctrl- k. Vì vậy, thay vì thực hiện các ràng buộc được mô tả ở trên, bạn có thể giết cả một dòng bằng cách nhấn Ctrl- u Ctrl- k. Chỉ phần bị giết bởi lần thứ hai trong số các tổ hợp phím đó sẽ được lưu trong bộ đệm giết, nhưng bạn vẫn có thể hoàn tác hai lần để khôi phục cả hai.