Niedawno przeszedłem na zsh, używając robbyrussell'soh-my-zsh
. Wcześniej używałem bash z wieloma niestandardowymi rzeczami i brakuje mi tylko jednej rzeczy, ponieważ zsh próbuje być „zbyt inteligentny”:
Jeśli napiszę, git commit
a następnie ↑zsh przejdzie przez wszystkie ostatnie git
polecenia. Jednak tak naprawdę chcę przejrzeć wszystkie polecenia zaczynające się od git commit
(nie tylko git
).
Jak mogę osiągnąć to zachowanie w (oh-my-) zsh?
zsh
autocomplete
command-history
oh-my-zsh
Patrick Oscity
źródło
źródło
Odpowiedzi:
Rozwiązanie mojego problemu znalazłem w dokumentacji ZSH . Oh-my-zsh wydaje się mapować klucze ↑i ↓klucze do czegoś podobnego
Co daje dokładne zachowanie, które opisałem powyżej. Dokumentacja ZSH opisuje zachowanie
history-search-backward
asZamiast tego chciałem uzyskać następujące mapowanie, które wstawiłem do mojego
~/.zshrc
:Zachowanie
history-beginning-search-backward
jest następujące:Ponadto, jeśli
\e[A
nie działa dla strzałek w górę lub w dół, naciśnij<ctrl-v><KEY (e.g., up arrow)>
inny terminal, który daje^[OA
. Następnie możesz użyć tego zamiast\e[A
. Proces jest opisany tutaj: http://zshwiki.org/home/zle/bindkeysźródło
bindkey
nie robi nic prawdziwego z powodu błędu, więc zespół OMZ załatał to za pomocą tej wtyczki . Po prostu pobierz go i zrób to wcześniejbindkey
.Chciałem tego samego zachowania dla Zsh z
oh-my-zsh
zainstalowaną i znalezioną wtyczkąhistory-substring-search
.Osiągnąłem to samo zachowanie opisane powyżej, dodając wtyczkę do mojego
~/.zshrc
:Wydaje mi się, że ta wtyczka nie istniała, kiedy pojawiło się to pytanie. Po prostu alternatywny sposób na osiągnięcie tego samego.
źródło