history-search-backward hoạt động khác nhau trong zsh so với bash


10

Tôi đã history-search-backwardánh xạ như PageUp.

Khi tôi gõ:

git push <PageUp><PageUp><PageUp>
  1. trong Bash nó bắt đầu quay vòng qua tất cả các mục lịch sử bắt đầu bằng git đẩy
  2. trong Zsh, nó bắt đầu quay vòng qua tất cả các mục lịch sử bắt đầu bằng git vì vậy nó sẽ liệt kê các mục như vậy git status, git remote updatev.v ... Đây không phải là điều tôi muốn.

Làm thế nào tôi có thể có zsh cư xử như bash? Tôi setoptnên đặt cái gì?

Câu trả lời:


13
bindkey "^[[5~" history-beginning-search-backward

bindkey "^[[6~" history-beginning-search-forward

Đây là những gì tôi sử dụng


Nếu bạn muốn có cùng chức năng nhưng với Up và Down arror, hãy thay thế khóa liên kết "^[[5~"thành "^[[A""^[[6~"thành"^[[B"
Tự động xác định

1
Tìm kiếm lịch sử bắt đầu của zsh vẫn có một sự khác biệt tinh tế so với tìm kiếm lịch sử của bash (readline). Lệnh readline tương đương với lịch sử lùi / tiến (và đặt con trỏ ở cuối dòng) trước khi bạn di chuyển con trỏ trong dòng (điều này sẽ biến nó thành "tìm kiếm lịch sử bắt đầu") trong khi các lệnh của zsh luôn đặt con trỏ ở đầu dòng. Có cách nào dễ dàng để thay đổi hành vi này mà không cần viết một widget mới không? THX
yuyichao

@yuyichao, có lẽ bạn đã tìm ra cách zshcư xử như thế bashnào?
Blaz

@courteous Không thực sự, Mặc dù tôi đã quen với hành vi zsh sau khi sử dụng một thời gian ... Đặc biệt là vì đơn giản <C-e>có thể biến zshhành vi thành bashhành vi nhưng không dễ dàng theo cách khác.
yuyichao
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.