Obecnie w moim pliku .zshrc mam następujące elementy:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Wydaje się to jednak pasować do zawartości mojego bieżącego wejścia, zanim pojawi się znak spacji. Na przykład sudo ls /
dopasuje każdy wiersz w mojej historii, który zaczyna się od sudo
, podczas gdy chciałbym, aby dopasowywał tylko wiersze, które pasują do całego mojego wejścia. (tzn. sudo ls /etc
pasuje, ale nie pasuje sudo cat /var/log/messages
)
Co muszę zmienić, aby uzyskać pożądane zachowanie?
Oto mój cały plik .zshrc, jeśli jest to istotne: https://gist.github.com/919566
zsh zapewnia tę funkcjonalność za pomocą
Dawny.
Znajdź dokładny kod klucza przez
ctrl+vKEY
Dawny.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
itd.
źródło
$terminfo[kcuu1]
, <kbd> W dół </kbd> to$terminfo[kcud1]
.Ten post na blogu z 2013 roku zaleca kilka skrótów klawiszowych pasujących do wszystkich słów przed kursorem.
(We wcześniejszej wersji tej odpowiedzi użyłem
$terminfo
zgodnie z zaleceniami w jednym z komentarzy na blogu. Niektóre wartości terminfo są wymienione tutaj ).źródło
/etc/zsh/zshrc
, takie jak$key[Up]
.$terminfo
, musisz zmienić tryby terminalu. Zobacz tutaj .$key[]
zamiast$terminfo[]
. Mam nadzieję, że to działa dobrze dla czytelników!Zobacz także projekt zsh-history-substring-search .
Oferuje to, czego szukasz, i może być nawet używany jako wtyczka oh-my-zsh.
źródło