il completamento della storia di oh-my-zsh

Recentemente ho passato a zsh, usando il oh-my-zsh . Prima che ho usato bash con un sacco di roba personalizzata e mi manca solo una cosa perché zsh sta cercando di essere "troppo intelligente":

Se git commit e poi zsh passa attraverso tutti i comandi recenti di git . Quello che voglio veramente, però, sta attraversando tutti i comandi che iniziano con git commit (non solo git ).

Come posso get questo comportmento in (oh-my-) zsh?

Ho trovato la soluzione del mio problema nella documentazione di ZSH . Oh-my-zsh sembra mappare le chiavi e a qualcosa di simile

 bindkey '\e[A' history-search-backward bindkey '\e[B' history-search-forward 

Quale produce il comportmento esatto descritto sopra. La documentazione ZSH descrive il comportmento della history-search-backward come history-search-backward

Ricerca indietro nella cronologia di una row che inizia con la prima parola nel buffer .


Quello che volevo invece era la seguente mapping, che ho inserito nel mio ~/.zshrc :

 bindkey '\e[A' history-beginning-search-backward bindkey '\e[B' history-beginning-search-forward 

Il comportmento della history-beginning-search-backward è il seguente:

Ricerca avanti nella cronologia per una row che inizia con la linea corrente fino al cursore . Questo lascia il cursore nella sua posizione originale.

Inoltre, se \e[A non funziona per le frecce su o giù, premere <ctrl-v><KEY (eg, up arrow)> in un altro terminal che fornisce ^[OA . Quindi puoi utilizzare questo invece di \e[A Il process è descritto qui: http://zshwiki.org/home/zle/bindkeys

Volevo lo stesso comportmento per zsh con oh-my-zsh installato e trovato plugin history-substring-search .

Ho ottenuto lo stesso comportmento sopra descritto aggiungendo il plugin al mio ~/.zshrc :

plugins=(git brew npm history-substring-search)

Suppongo che questo plugin non esistesse quando questa domanda è stata sollevata. Solo un modo alternativo per raggiungere la stessa cosa.