ZSH geçmişindeki artımlar-desen-arama-geriye doğru eşleşmeler arasında geçiş yapma


10

Son zamanlarda history-incremental-pattern-search-backward, aramadaki desenlere izin verdiği için geçmiş aramayı kullanmak için değiştirdim. İşte benim kurulum.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

Bu harika çalışıyor, ancak arama menüsünden bir sonraki maça nasıl gidileceğini anlayamıyorum.

% cat foobarbaz.txt
bck-i-search: f*baz

Bunu yapmak için bir anahtar var mı?

Yanıtlar:


12

Sonunda doğru büyüyü buldum. Ekleme modunda desen aramasını eşlemeniz gerekir. Bu benim eksik olduğum parçaydı:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

Kullanmış olurdu ^Bgeriye ekleme modunda arama için, ama başka bir şey eşleştirilmiş olduğunu var. Şimdi ^Rve ^Fmaçlar arasında dolaşın.


-Mkomut ne yapar ? Benim durumumda bile -Manahtar kelime olmadan bu harika çalışıyor ..
alpha_989

-M keymapBağlanma uygulamak keymap bindkey söyler. Hem ekleme modu hem de komut modu için ayarladım.
claytron

Açıklama için teşekkürler. Benim durumumda sadece var bindkey '^R' history-incremental-pattern-search-backwardve işe yarıyor. Ayrıca /zsh içinde vi normal modelinde varsayılan komutu kullanıyorum . Burada komut geçmişini arayabilirim ve komutu bulduğunda, bunu komut satırında sağlar. Sonra gerekirse son komutu değiştirebilirim.
alpha_989

Eğer kullanırsam '^R' history-incremental-pattern-search-backward, bu sadece beni arama dizesiyle eşleşen son komuta inecektir. Ancak, komutu gerçekten düzenleyebilmenin bir yolunu bulamadım. Artımlı pıtırtı arama yoluyla arama dizesiyle eşleşen uygun bir komut bulduktan sonra, komutu düzenlemek için basabileceğim belirli tuş kombinasyonları var mı?
alpha_989

9

zshzleZsh 4.3.10 için manuel sayfaya göre , varsayılan olarak hiçbir anahtar bağlanmaz. isearchHaritaya bağlamalar eklemeniz gerekir ve yalnızca birkaç widget kullanılabilir. Örneğin, şunları yapabilirsiniz:

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lbir isearcheşleme göstermiyor
claytron

@claytron: bir sürüm sorunu olmalı: 4.3.7'de ortaya çıkarken 4.3.7'de isearchyeni history-incremental-pattern-search-backward(değişiklik günlüğünü doğru okuduysam).
Gilles 'SO- kötü olmayı bırak'

4.3.10 kullanıyorum, neden orada olmadığından emin değilim. Ekleme modu bağlamaları kullanarak benim için çalıştı.
claytron
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.