Salin & Rekatkan ini ke .zshrc
:
Kursor menggunakan riwayat lokal:
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
Jika Anda juga perlu mengikat kunci ( CTRL+ kursor) untuk menelusuri sejarah global, tambahkan juga ini ke .zshrc
:
bindkey "^[[1;5A" up-line-or-history # [CTRL] + Cursor up
bindkey "^[[1;5B" down-line-or-history # [CTRL] + Cursor down
Untuk membuat ini berfungsi, opsi SHARE_HISTORY (lihat 16.2.4 Riwayat ) perlu diaktifkan. Jalankan setopt
dan periksa apakah "sharehistory" terdaftar. Jika tidak menambah setopt sharehistory
ke Anda .zshrc
. Maka kita dapat menggunakan set-local-history seperti yang kita lakukan di atas. Dokumentasi mengatakan:
Secara default, perintah pergerakan riwayat mengunjungi baris yang diimpor serta jalur lokal, tetapi Anda dapat mengaktifkan dan menonaktifkannya dengan zle binding set-local-history. Dimungkinkan juga untuk membuat widget zle yang akan membuat beberapa perintah mengabaikan perintah yang diimpor, dan beberapa menyertakannya.
Perhatikan bahwa riwayat global standar digunakan (dan semua fungsi diakhiri dengan "zle set-local-history 0", yaitu riwayat lokal dinonaktifkan). Jadi menekan CTRL+ Rakan mencari sejarah global secara default (yang masuk akal dalam banyak kasus).
Ini sangat mirip dengan solusi oleh @mpy, tetapi siap untuk salin & tempel. Itu menimpa tombol kursor atas dan ke bawah. Saya menggunakan entri daftar surat ini .
Lihat juga: