Saya menggunakan vim
dasarnya semua kebutuhan editing saya, jadi saya memutuskan untuk sekali lagi mencoba mode-vi untuk shell saya (saat ini ZSH w / oh-my-zsh di OS X), tetapi saya menemukan diri saya mencoba (dan gagal) untuk menggunakan Ctrl-R
terus-menerus. Apa yang mengikat kunci setara? Dan untuk referensi di masa mendatang, bagaimana saya mencari tahu sendiri? Saya cukup yakin saya bisa menggunakannya bind -P
di bash.
zsh
command-history
vi-mode
Hank Gay
sumber
sumber
Jawaban:
Anda dapat menjalankan
bindkey
tanpa argumen untuk mendapatkan daftar binding yang ada, misalnya:Dalam mode emacs, pengikatan yang Anda inginkan adalah
history-incremental-search-backward
, tetapi itu tidak terikat secara default dalam mode vi. Untuk mengikat Ctrl-R sendiri, Anda dapat menjalankan perintah ini, atau menambahkannya ke~/.zshrc
:The
zshzle
manualnya (man zshzle
) memiliki informasi lebih lanjut tentang zsh line Editor, bindkey, dan emacs / vi mode.sumber
zshzle
. Itu cukup informatif dan bermanfaat.Ini adalah pertanyaan kuno, tetapi satu-satunya jawaban (dan yang diterima) pada dasarnya memberi tahu seseorang cara mentransplantasikan "mirip emacs"
history-incremental-search-backward
ke mode vi. Meskipun ini sangat bisa dilakukan dan mungkin solusi yang tepat untuk Anda, agak aneh bahwa tidak ada yang menyebutkan "vi cara" dalam mencari sejarah.Mode vi di zsh mendukung riwayat pencarian menggunakan tombol vi / vim standar:
/
dan?
, keduanya tersedia dalam mode perintah. (Tekan<Esc>
untuk beralih dari mode insert ke command, seperti di vi atau vim.)Namun, indra mereka terbalik: Karena Anda biasanya ingin mencari riwayat shell Anda secara terbalik,
/
lakukan pencarian terbalik sedangkan?
pencarian maju.Setelah klik pertama ditampilkan, Anda dapat (seperti di vi / vim) gunakan
n
untuk terus menemukan lebih banyak klik di arah yang sama, atauN
untuk membalikkan arah pencarian.Ikatan kunci default yang relevan dalam
vicmd
keymap adalah:sumber
"^P" history-beginning-search-backward
dan"^N" history-beginning-search-forward
untuk pelengkapan otomatis seperti vim (Anda mulai mengetik, lalu tekanctrl+p
atauctrl+n
).?
membukabck-i-search
, itulah yang saya cari. Terima kasih./
atau `? ' tidak: coderwall.com/p/-jvcag/zsh-reverse-history-search-with-regex^R
keybinding. Satu-satunya "regex-like" karakter yang didukung oleh keduanyahistory-search-backward
danhistory-incremental-search-backward
adalah^
, untuk menjangkar string pencarian ke awal baris. Kekuatan sebenarnyahistory-incremental-search-backward
adalah bahwa ia melakukan pencarian tambahan, seperti namanya. Saya dapat membayangkan bahwa seseorang mungkin ingin mengikatnya di papanvicmd
tombol karena alasan itu.history-incremental-pattern-search-backward
, bukanhistory-incremental-search-backward
.history-incremental-pattern-search-backwards
mungkin widget .. tapi saya pikir itu diinstal secara default di zsh. Ini mendukungglob
pola tidakregex
seperti yang Anda tunjukkan dengan benar: zsh.sourceforge.net/Doc/Release/Expansion.html#Glob-Operators . Memang ada kesalahan dalam posting ..