Câu trả lời:
Đầu tiên hãy tìm ra trình tự nó tạo ra.
echo "
CtrlVFnDelete" | od -c
Sau đó liên kết chuỗi đó bằng cơ chế liên kết zsh bình thường.
echo "~"
, bạn phải thực sự làm theo chỉ dẫn mà Ignacio đã đưa cho bạn. Trên hệ thống của tôi, nó ^[[3~
(hoặc là od
đầu ra 033 [ 3 ~
:). Vì vậy, lệnh sẽ là bindkey "^[[3~" delete-char
trong đó sẽ đi trong của bạn ~/.zshrc
.
ctrl-v
là một chuỗi thoát đặc biệt có nghĩa là "chèn ký tự tiếp theo tôi nhấn như một ký tự không được giải nghĩa theo nghĩa đen, thay vì làm bất cứ điều gì nó thường làm." Có nghĩa là nó không được chuyển đổi thành ~
, nhưng vẫn là chuỗi thoát.
0000000 C t r l V F n D e l e t e \n 0000016
.
Đối với tôi, ở trên đã không thực hiện được mẹo nên tôi đã thêm ràng buộc khóa sau vào ~/.zshrc
:
bindkey "\e[3~" delete-char
FYI: Tôi đang dùng Mac (High Sierra).
~/.zshrc
.
cat
và sau đó gõ các phím. Fn+F1
cho tôi ^[OP
ví dụ.
bindkey '
CtrlvFnDelete' delete-char
Điều này sẽ liên kết Fn+ Deleteđể xóa chuyển tiếp một ký tự. Nếu những điều trên không rõ ràng, bạn cần gõ Ctrl+ v, Fn+ Deletegiữa việc gõ dấu ngoặc kép. Ctrl+ vcho phép bạn nhập chuỗi thoát thoát theo nghĩa đen của bất kỳ khóa nào xuất hiện sau nó.
Bạn có thể đặt dòng này trong ~/.zshrc
tập tin của bạn .