history-search-backward bekerja secara berbeda di zsh daripada di bash

10

Saya telah history-search-backwardmemetakan sebagai PageUp.

Saat saya mengetik:

git push <PageUp><PageUp><PageUp>
  1. di Bash ia mulai menggilir semua entri sejarah yang dimulai dengan git push
  2. di Zsh ia mulai menggilir semua entri sejarah yang dimulai dengan git sehingga ia akan mendaftar entri seperti itu git status, git remote updatedll. Ini bukan yang saya inginkan.

Bagaimana saya bisa berperilaku zsh seperti bash? Apa yang setoptharus saya atur?

Paweł Gościcki
sumber

Jawaban:

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

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

Inilah yang saya gunakan

gtmanfred
sumber
Jika Anda menginginkan fungsi yang sama tetapi dengan aror Atas dan Bawah, ganti kunci penjilid "^[[5~"ke "^[[A"dan "^[[6~"ke"^[[B"
Autodidact
1
Pencarian awal-sejarah zsh masih memiliki perbedaan tipis dari pencarian riwayat bash (readline). Perintah readline setara dengan history-backward / forward (dan letakkan kursor di akhir baris) sebelum kamu memindahkan kursor di baris (yang akan membuatnya berubah menjadi "pencarian-awal-pencarian") sementara yang zsh selalu menempatkan kursor di awal baris. Apakah ada cara mudah untuk mengubah perilaku ini tanpa menulis widget baru? THX
yuyichao
@ yuyichao, apakah Anda mungkin menemukan cara zshberperilaku seperti bash?
Blaz
@courteous Tidak juga, Meskipun saya terbiasa dengan perilaku zsh setelah menggunakannya untuk beberapa waktu ... Terutama karena sederhana <C-e>dapat mengubah zshperilaku menjadi bashperilaku tetapi tidak begitu mudah sebaliknya.
yuyichao