penyelesaian sejarah oh-my-zsh

45

Saya baru saja beralih ke zsh, menggunakan robbyrussell'soh-my-zsh . Sebelum itu saya menggunakan bash dengan banyak hal khusus dan saya hanya melewatkan satu hal karena zsh mencoba menjadi 'terlalu pintar':

Jika saya mengetik git commitdan kemudian zsh melewati semua gitperintah terbaru . Yang benar-benar saya inginkan adalah melalui semua perintah yang dimulai dengan git commit(bukan hanya git).

Bagaimana saya bisa mencapai perilaku ini di (oh-my-) zsh?

Patrick Oscity
sumber
Aneh, saya menggunakan OMZSH dan berperilaku seperti ini. Apakah Anda memiliki 'plugins = (git)' di zshrc Anda?
Chris2048
ya saya lakukan, tetapi tidak hanya untuk git, semua perintah diselesaikan dengan cara ini.
Patrick Oscity
Di Ubuntu, lihat superuser.com/a/1490192/131522
mixel

Jawaban:

66

Saya telah menemukan solusi untuk masalah saya dalam dokumentasi ZSH . Oh-my-zsh tampaknya memetakan dan Kunci untuk sesuatu seperti

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

Yang menghasilkan perilaku persis seperti yang saya jelaskan di atas. Dokumentasi ZSH menggambarkan perilaku history-search-backwardas

Cari mundur dalam sejarah untuk baris yang dimulai dengan kata pertama di buffer .



Yang saya inginkan adalah pemetaan berikut, yang saya masukkan ke dalam ~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

Perilaku history-beginning-search-backwardadalah sebagai berikut:

Cari maju dalam sejarah untuk baris yang dimulai dengan baris saat ini hingga kursor . Ini meninggalkan kursor pada posisi semula.

Juga, jika \e[Atidak bekerja untuk panah atas atau bawah, tekan <ctrl-v><KEY (e.g., up arrow)>terminal lain yang memberi ^[OA. Maka Anda bisa menggunakan ini sebagai gantinya \e[A. Prosesnya dijelaskan di sini: http://zshwiki.org/home/zle/bindkeys

Patrick Oscity
sumber
1
Terima kasih terima kasih terima kasih!! Saya menjadi gila atas ini
mhenrixon
Untuk pengguna non-OMZ seperti saya: bindkeytidak melakukan sesuatu yang nyata, karena bug, jadi tim OMZ menambalnya dengan plugin ini . Cukup unduh dan sumberkan sebelumnya bindkey.
Franklin Yu
@ Franklin. Anda benar-benar menyadari bahwa itu benar, kan? plugin itu tidak melakukan apa-apa dengan bindkey kecuali GUNAKAN untuk menangkap beberapa peristiwa.
nonchip
Wow, ini sempurna!
Squirrel
12

Saya ingin perilaku yang sama untuk zsh dengan oh-my-zshplugin yang diinstal dan ditemukan history-substring-search.

Saya mencapai perilaku yang sama seperti dijelaskan di atas dengan menambahkan plugin ke ~/.zshrc:

plugins=(git brew npm history-substring-search)

Saya kira plugin ini tidak ada kembali ketika pertanyaan ini diajukan. Hanya cara alternatif untuk mencapai hal yang sama.

dcusan
sumber