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?


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

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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.