Jaka powłoka pozwala przywoływać polecenia z pewnym początkiem?

3

Programy takie jak matlab / oktawa i jestem pewien, że wiele innych pozwala na rozpoczęcie wpisywania polecenia, a następnie naciśnij, Upaby przywołać ostatnie polecenie, które zaczyna się od wpisanych znaków.

Powszechna powłoka linuksowa bashtego nie robi. Czy istnieje inna powłoka, która działa? Nie pytam, jak znaleźć ostatnie polecenie, pytam, czy istnieje powłoka, która jest trochę bardziej przyjazna.

Michaił
źródło
2
Nie sugeruje innej powłoki, stąd komentarz zamiast odpowiedzi. Czy wypróbowałeś już Ctrl-rfunkcję wyszukiwania wstecznego przyrostowego? Alternatywnie, !foouruchomi ostatnie polecenie, które wprowadziłeś zaczynając od foo.
jw013,
Dzięki! Wiedziałem o tym, !ale jeśli chcę biegać !rm, robi się przerażająco
Michaił
Dlatego wolę, Ctrl-rponieważ możesz interaktywnie edytować przed naciśnięciem klawisza Enter. W przypadku dwuetapowego podejścia możesz !rm:ppo prostu wydrukować rozszerzenie bez uruchamiania go.
jw013,

Odpowiedzi:

3

Bash zezwala na to, gdy masz następujące komentarze .inputrc:

# alternate mappings for up/down arrows to search the history
"\e[B": history-search-forward
"\e[A": history-search-backward
paradroid
źródło
To jest źle. To nie jest strona w górę / w dół, ale strzałka w górę / w dół.
Daniel Beck
@Daniel: O tak, zapomniałem zmienić komentarz po zmianie kluczy, ale tylko komentarz był zły.
paradroid
Dzięki! Z drugiej strony, czy jest jakaś rzeczywista skorupa, która jest lepsza?
Michaił
@Mikhail: To byłaby subiektywna sprawa, ale nie użyłem niczego innego w Linuksie iPythoni bashnie byłbym tak popularny, gdyby istniało coś znacznie lepszego. Niektórzy ludzie wolą zsh, ale niewiele o tym wiedzą.
paradroid
@Mikhail Użyj tego, co jest domyślne (tj. Przypuszczalnie szeroko stosowane, dobrze przetestowane i dobrze zintegrowane), chyba że masz określone wymagania, które może (łatwo) rozwiązać tylko inna powłoka.
Daniel Beck
3

Bash faktycznie to robi, kiedy go skonfigurujesz. Umieść to w ~/.inputrc:

"\e[B": history-search-forward
"\e[A": history-search-backward

Następnie klawisze strzałek w górę i w dół przeszukują historię przy użyciu prefiksu bieżącego polecenia aż do kursora.

Te funkcje są domyślnie niezwiązane. Istnieją inne polecenia wyszukiwania historii, patrz tutaj .

Daniel Beck
źródło
0

Chcesz użyć wyszukiwania historii do przodu i do tyłu. Z bash (1):

   reverse-search-history (C-r)
          Search  backward  starting  at  the current line and moving `up'
          through the  history  as  necessary.   This  is  an  incremental
          search.
   forward-search-history (C-s)
          Search  forward  starting  at the current line and moving `down'
          through the  history  as  necessary.   This  is  an  incremental
          search.

Wystarczy nacisnąć ^ R ​​i wpisać statystyki, robi dokładnie to, o co prosisz. Naciśnij ^ R wiele razy, aby przeglądać trafienia.

Barbaz
źródło