completamento della cronologia oh-my-zsh


45

Di recente sono passato a zsh, usando robbyrussell'soh-my-zsh . Prima di allora ho usato bash con molte cose personalizzate e mi manca solo una cosa perché zsh sta cercando di essere 'troppo intelligente':

Se scrivo git commite quindi zsh passa attraverso tutti i gitcomandi recenti . Quello che voglio davvero, però, è passare attraverso tutti i comandi che iniziano con git commit(non solo git).

Come posso ottenere questo comportamento in (oh-my-) zsh?


Strano, io uso OMZSH e si comporta in questo modo. Hai 'plugins = (git)' nel tuo zshrc?
Chris2048,

si lo faccio, ma non è solo per git, tutti i comandi vengono completati in questo modo.
Patrick Oscity,

Risposte:


66

Ho trovato la soluzione al mio problema nella documentazione di ZSH . Oh-my-zsh sembra mappare i tasti e a qualcosa del genere

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

Il che produce il comportamento esatto che ho descritto sopra. La documentazione ZSH descrive il comportamento di history-search-backwardas

Cerca all'indietro nella cronologia una riga che inizia con la prima parola nel buffer .



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

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

Il comportamento di history-beginning-search-backwardè il seguente:

Cerca in avanti nella cronologia una riga che inizia con la riga corrente fino al cursore . Questo lascia il cursore nella sua posizione originale.

Inoltre, se \e[Anon funziona per le frecce su o giù, premere <ctrl-v><KEY (e.g., up arrow)>in un altro terminale che dà ^[OA. Quindi puoi usare questo invece di \e[A. Il processo è descritto qui: http://zshwiki.org/home/zle/bindkeys


1
Grazie, grazie, grazie!! Stavo
impazzendo

Per utenti non OMZ come me: bindkeynon fa nulla di reale, a causa di un bug, quindi il team OMZ lo ha corretto con questo plugin . Basta scaricarlo e cercarlo prima bindkey.
Franklin Yu,

@FranklinYu ti rendi conto che è bs totale, giusto? quel plug-in non fa nulla con bindkey eccetto USE per catturare alcuni eventi.
nonchip

Caspita, è perfetto!
Scoiattolo

12

Volevo lo stesso comportamento per zsh con il oh-my-zshplugin installato e trovato history-substring-search.

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

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

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

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.