Możesz użyć funkcji zlehistory-search
:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
Spowoduje to powiązanie Upi Down(dostosowanie do własnych sekwencji ucieczki) wyszukiwania historii, wstecz i do przodu, w oparciu o to, co zostało już wprowadzone w wierszu polecenia.
Jeśli więc wpiszesz „vim” i naciśniesz Up, zsh przejdzie do tyłu przez twoją historię tylko dla tych poleceń rozpoczynających się od „vim”.
Możesz dodatkowo umieścić kursor na końcu wiersza po wybraniu żądanego polecenia z historii zsh za pomocą funkcji wyszukiwania końca historii (zwykle znajduje się w /usr/share/zsh/functions/Zle/
) i dołączenia -end
na końcu każdego wiersza, tak jak:
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
Inną przydatną opcją jest
history | grep
Przypisz alias, np
następnie możesz wpisać,
hg whatever
aby wyszukać używane polecenia, npUmieszczam ten alias w moich plikach kropek.
źródło
hg
mi przypomina ... O tak, Mercurial!Jeśli używasz oh-my-zsh , dodaj
history-substring-search
doplugins=(...)
linii.Następnie dodaj
gdzieś poniżej linii, która czytała
source $ZSH/oh-my-zsh.sh
. Zapisz i uruchom nowy terminal lub uruchomsource ~/.zshrc
w bieżącym terminalu.Uwaga:
^[[A
to sekwencja ucieczki dla strzałki w górę w terminalu, którego używam (kotek) i wielu innych. Aby sprawdzić wybrany terminal, wpisz,showkey -a
a następnie naciśnij klawisz, dla którego chcesz znaleźć sekwencję zmiany znaczenia.źródło
brew install zsh-history-substring-search
, sprawdziłem repozytorium repo, aby uzyskać instrukcje, po prostu pójdę naprzód i utworzę odpowiedź Jestem naprawdę zadowolony z wyniku.Możesz użyć skryptu na https://github.com/zsh-users/zsh-history-substring-search
Gdzie możesz wpisać dowolną część wcześniej wprowadzonego polecenia i naciskać klawisze Upi Down, aby przechodzić między pasującymi poleceniami.
źródło
Zdecydowanie polecam używanie
"$terminfo[kcuu1]"
lub"$key[Up]"
raczej zakodowanie na sztywno takich rzeczy,"^[[A"
które mogą, ale nie muszą działać w danym systemie.Sprawdź
/etc/zsh/zshrc
więcej kluczy. Oto jak to wygląda w moim systemie. Myślę, żeterminfo
klucze będą bardziej prawdopodobne.źródło
Co z używaniem
zsh-autosuggestions
?Chodzi o to, że dla każdego wpisanego polecenia ta wtyczka wyświetli kilka sugestii, które można zaakceptować lub nie. Wypróbuj i przekaż nam swoją opinię.
Bez wtyczek możemy nacisnąć, Ctrlraby wykonać odwrotne przeszukiwanie historii, gdy tylko zaczniesz wpisywać dopasowane polecenia pojawią się jako sugestie.
źródło
Używam wtyczki trybu vi . A potem w moim ~ / .zshrc mam następujące powiązania:
To pozwala mi używać
^P
i^N
jako normalne wyszukiwanie do tyłu i do przodu, jeśli nie wprowadzę żadnego tekstu, oraz jako wyszukiwanie filtrowane, jeśli to zrobię.źródło
Zgadzam się z cheflo, że wyszukiwanie „podciągów” jest bardziej przydatne. Nie mogę komentować, więc zacząłem nową odpowiedź. Używam oh-my-zsh i dodaję „history-substring-search” do wtyczek = (...) ~ / .zshrc. Następnie źródło ~ / .zshrc. Nie musisz nic więcej dodawać. Użyj „klucza powiązania”, aby zweryfikować:
Później wpiszesz „do” i strzałkę w górę, pojawi się „historia” i podświetlone „do” (jeśli wcześniej używałeś polecenia „historia”).
źródło
Zamiast tego możesz użyć zaw , który całkowicie zastępuje twoje wyszukiwanie znacznie lepszym super wyszukiwaniem wielu słów kluczowych i rozwiązuje również twój problem - historia wyszukiwania jest tylko jedną z rzeczy, które zaw może wyszukiwać.
Małe wprowadzenie / dyskusja tutaj
źródło
Ponieważ używam oh-my-zsh i używam rozwiązania substring z joelostblom, James, modyfikuję .zshrc w następujący sposób: (który w linii 13 znajduje wiersz „source $ ZSH / oh-my-zsh.sh” , a następnie zmodyfikuj otaczający go kod).
źródło
bindkey -v
zepsuje ctrl-a, ctrl-e. Najprawdopodobniej wszystkie komendy ctrl.Odpowiedź nie-Oh-My-Zsh
To działało dla mnie (na macOS), aby historia podciągów była łatwo dostępna za pomocą strzałki góra / dół. Wiązanie klawiszy należy do Ciebie.
Historia wyszukiwania podciągów jest lepsza niż tylko dostęp do poleceń rozpoczynających się ciągiem. W większości przypadków jest to bardziej ctrl-r, te bez globów lub dopasowania wyrażenia regularnego.
Począwszy od instrukcji w zsh-users / zsh-history-substring-search
Teraz dobrze się tym bawię.
źródło