Prima di tutto, lo trovo un po 'strano: per impostazione predefinita, zsh usa le combinazioni di tasti in stile emacs (escape seguito da un tasto), a meno che non sia in modalità vi, a quel punto le combinazioni di tasti in stile emacs sono disabilitate. zsh si mette anche in modalità vi se si utilizza un editor simile a vi come editor predefinito. Quindi, mi sembra che probabilmente non eri originariamente in modalità vi, fino a quando non hai modificato zshenv.
Quindi, vorrei prima chiedere: sei sicuro al 100% di aver sempre usato la modalità vi? Vale a dire, bindkey -e
risolve il problema (provalo in una shell aperta)?
Può darsi che tu stia davvero meglio in modalità emacs ( bindkey -e
). D'altra parte, potrebbe essere che ti piacerebbe essere in modalità vi, ma sarebbe meglio con alcune associazioni di stile emacs .
Oppure, forse mi sbaglio completamente e dovrei concentrarmi solo sulla tua dichiarazione di associazione, che è scritta in modo errato.
Prima di tutto, l'inclusione del bit "vicmd" impedisce che ciò si lavora in modalità di inserimento (normale): funziona solo se prima fuga stampa (da solo) per uscire dalla modalità di inserimento per la modalità di comando (come si farebbe in vim) . Pertanto, non è possibile premere "esc- /" come accordo (provare a premere escape, rilasciarlo, quindi premere "/").
Prova la seguente associazione:
bindkey '\e/' history-incremental-pattern-search-backward
Ora dovresti essere in grado di premere "escape- /" come accordo e ottenere i risultati desiderati.