Saat ini, saya memiliki yang berikut ini di .zshrc saya:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Namun, ini hanya cocok dengan konten input saya saat ini sebelum karakter spasi muncul. Misalnya, sudo ls /
akan mencocokkan setiap baris dalam riwayat saya yang dimulai dengan sudo
, sementara saya ingin hanya mencocokkan garis yang cocok dengan seluruh input saya. (Yaitu sudo ls /etc
akan cocok, tetapi tidak sudo cat /var/log/messages
)
Apa yang perlu saya ubah untuk mendapatkan perilaku yang diinginkan?
Ini seluruh .zshrc saya seandainya relevan: https://gist.github.com/919566
zsh menyediakan fungsionalitas ini dengan menggunakan
Ex.
Temukan kode kunci yang tepat dengan
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
dll.
sumber
$terminfo[kcuu1]
, <kbd> Turun </kbd> adalah$terminfo[kcud1]
.Posting blog ini dari tahun 2013 merekomendasikan beberapa keybinds yang cocok dengan semua kata sebelum kursor.
(Dalam versi sebelumnya dari jawaban ini, saya telah menggunakan
$terminfo
seperti yang direkomendasikan dalam salah satu komentar di posting blog. Beberapa nilai terminfo tercantum di sini .)sumber
/etc/zsh/zshrc
, seperti$key[Up]
.$terminfo
Anda harus mengubah mode terminal. Lihat di sini .$key[]
alih-alih$terminfo[]
. Saya harap ini bekerja dengan baik untuk pembaca!Lihat juga pada zsh-history-substring-search proyek .
Ia menawarkan apa yang Anda cari, dan bahkan dapat digunakan sebagai plugin oh-my-zsh.
sumber