Comment activer la recherche inversée dans zsh?


38

Je suis récemment passé à zsh (enfin) et je l'adore! Jusqu'à présent , une chose que je suis absent est Ctrl+ Rde faire des recherches d'histoire incrémentale.
J'ai l'histoire correctement mis en place

HISTSIZE=10000
SAVEHIST=10000
HISTFILE=~/.zsh_history

et j'ai utilisé des viraccourcis

bindkey -v

Mais Ctrl+ Rne fonctionne pas. Il supprime la ligne au-dessus de la ligne actuelle, ce qui n'est pas non plus le comportement qu'il devrait avoir dans vim.

Aucune suggestion?


1
en passant, une solution rapide consiste à utiliser la recherche non incrémentale: Ctrl+ [ /...
maxschlepzig

Réponses:


60

Si je me souviens bien, vous devez le définir explicitement, même avec bindkey -v. Utilisez quelque chose comme ceci:

bindkey -v
bindkey '^R' history-incremental-search-backward

4
history-incremental-pattern-search-backwardest peut - être une action alternative à utiliser dans ce contexte.
maxschlepzig

2
@ maxschlepzig désolé quelle est la différence entre les deux?
Ali

2
@Ali, avec les versions -pattern- , vous pouvez utiliser des modèles de recherche (quel style, par exemple le globbing ou les expressions rationnelles (?) Dépend d'autres parties de votre configuration zsh) - comme par exemple, vous pouvez utiliser le modèle de recherche fo*baravec greppour faire correspondre ' fobar ',' foobar ',' fooobar 'etc.
maxschlepzig

3
Je recevais une erreur. L'emballage de ^ R entre guillemets l'a fait. bindkey "^R" history-incremental-pattern-search-backward
Ramon Tayag

1
bindkey -vdoit précéderhistory-incremental-search-backward
Deniz le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.