Sao chép và dán cái này vào .zshrc
:
Con trỏ đang sử dụng lịch sử địa phương:
bindkey "${key[Up]}" up-line-or-local-history
bindkey "${key[Down]}" down-line-or-local-history
up-line-or-local-history() {
zle set-local-history 1
zle up-line-or-history
zle set-local-history 0
}
zle -N up-line-or-local-history
down-line-or-local-history() {
zle set-local-history 1
zle down-line-or-history
zle set-local-history 0
}
zle -N down-line-or-local-history
Nếu bạn cũng cần các ràng buộc chính ( CTRL+ con trỏ) để bước qua lịch sử toàn cầu, hãy thêm điều này vào .zshrc
:
bindkey "^[[1;5A" up-line-or-history # [CTRL] + Cursor up
bindkey "^[[1;5B" down-line-or-history # [CTRL] + Cursor down
Để thực hiện công việc này, tùy chọn SHARE_HISTORY (xem Lịch sử 16.2.4 ) cần được bật. Chạy setopt
và kiểm tra nếu "sharehistory" được liệt kê. Nếu không thêm setopt sharehistory
vào của bạn .zshrc
. Sau đó, người ta có thể sử dụng set-local-history như chúng ta đã làm ở trên. Thông tin nói:
Theo mặc định, các lệnh di chuyển lịch sử truy cập vào các dòng đã nhập cũng như các dòng cục bộ, nhưng bạn có thể bật và tắt tính năng này bằng liên kết zle set-local-history. Cũng có thể tạo một tiện ích zle sẽ làm cho một số lệnh bỏ qua các lệnh đã nhập và một số bao gồm chúng.
Lưu ý rằng theo lịch sử toàn cầu mặc định được sử dụng (và tất cả các chức năng kết thúc bằng "zle set-local-history 0", tức là lịch sử cục bộ bị tắt). Vì vậy, nhấn CTRL+ Rsẽ tìm kiếm lịch sử toàn cầu theo mặc định (điều này có ý nghĩa trong hầu hết các trường hợp).
Điều này khá giống với giải pháp của @mpy, nhưng đã sẵn sàng để sao chép và dán. Nó ghi đè các phím con trỏ lên và xuống. Tôi đã sử dụng danh sách thư này .
Xem thêm: