Utilizzo / Per cercare utilizzando ZSH


1

Mi piace cercare nella mia cronologia dei comandi usando i seguenti tasti:

<ESC>/
Type in command fragment<RET>
n => to look backwards in time
N => to go forwards

Funziona bene quando stai usando 'vi mode' in ZSH, ma di recente ho aggiunto vim come editor predefinito nel mio file .zshenv. Ora quando premo "/", vedo questo:

tom@flanders ~ZSH [master]
± %                          
zsh: do you wish to see all 5226 possibilities (5226 lines)?

Ho trovato questa combinazione di tasti che sembrava promettente, ma non ha fatto differenza:

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

C'è qualcos'altro che mi manca?

Risposte:


1

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 -erisolve 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.