Historia-wyszukiwanie-wstecz działa inaczej w zsh niż w bash

10

Mam history-search-backwardodwzorowane jako PageUp.

Kiedy piszę:

git push <PageUp><PageUp><PageUp>
  1. w Bash zaczyna przeglądać wszystkie wpisy historii zaczynające się od git push
  2. w zsh zaczyna przechodzić wszystkich zapisów historycznych począwszy git więc będzie wymienić takie pozycje git status, git remote updateitd. To nie jest to, co chcę.

Jak mogę zachowywać się zsh jak bash? Co setoptmam ustawić?

Paweł Gościcki
źródło

Odpowiedzi:

13
bindkey "^[[5~" history-beginning-search-backward

bindkey "^[[6~" history-beginning-search-forward

Tego używam

gtmanfred
źródło
Jeśli chcesz mieć tę samą funkcjonalność, ale z błędami w górę i w dół, zamień klucz powiązania "^[[5~"do "^[[A"i "^[[6~"do"^[[B"
Autodidact
1
Przeszukiwanie historii zsh nadal ma subtelną różnicę w stosunku do wyszukiwania historii bash (readline). polecenie readline jest równoważne z historią wstecz / do przodu (i umieść kursor na końcu linii), zanim przesuniesz kursor w linii (co spowoduje, że zmieni się w „wyszukiwanie od początku historii”), podczas gdy polecenia zsh zawsze umieszczają kursor na początku linii. Czy istnieje prosty sposób na zmianę tego zachowania bez pisania nowego widżetu? THX
yuyichao,
@ yuyichao, może odkryłeś, jak się zshzachować bash?
Blaz
@courteous Nie bardzo, chociaż przyzwyczajam się do zachowania zsh po użyciu go przez pewien czas ... Zwłaszcza, że ​​prosty <C-e>może zmienić zshzachowanie na bashzachowanie, ale nie jest tak łatwo na odwrót.
yuyichao