(reverse-i-search) w Bash

26

Zwykle używam CTRL+ rdo (reverse-i-search), jednak czasami przekazuję polecenie, którego szukałem; jeśli zrobię to jeszcze raz, to już (reverse-i-search)go nie znajdzie. Zakładam, że bieżący wskaźnik do historii poleceń znajduje się przed poleceniem, którego szukam.

Czy ktoś wie, jak wrócić do najnowszego polecenia w historii bez konieczności klikania 1000 razy down arrow?

Mikrofon
źródło
1
Wyszukiwanie wsteczne jest cechą bash (i bibliotek readline), więc zmodyfikowałem tytuł i zadałem pytanie, aby to odzwierciedlić.
Doug Harris
jeśli miniesz polecenie, które chcesz, zrób CTRL+SHIFT+Rto
Ricky Robinson

Odpowiedzi:

7

Jest to podobne pytanie na stackoverflow.com .

Najlepszą odpowiedzią jest Ctrl+Ganulowanie bieżącego wyszukiwania.

Doug Harris
źródło
To naprawdę nie jest najlepsza odpowiedź. Najlepszą odpowiedzią jest ta, którą podał Dennis Williamson: dodaj stty -ixonswój .bashrc(lub inny odpowiedni plik konfiguracyjny), a następnie przejdź Ctrl-Sdo historii, podobnie jak Ctrl-Gdo tyłu. Pierwsze Ctrl-Snaciśnięcie klawisza po Ctrl-Gzmianie reverse-i-searchna i-search, następny Ctrl-Srobi pierwszy krok do przodu. Następnie każdy Ctrl-Srobi kolejny krok do przodu.
nrz
lub jeśli już zakończyłeś wyszukiwanie (np. naciskając klawisz Esc lub klawisz strzałki), możesz nacisnąć klawisz Esc, a następnie „>”
Superole
38

Właściwie inna odpowiedź na to pytanie daje lepszą opcję.

W swoim ~/.bashrcdodaj następujący wiersz:

stty -ixon

Następnie możesz użyć Ctrl- saby przejść do historii w taki sam sposób, jak byś użył Ctrl- rdo cofnięcia się.

To nawet zadziała, aby rozpocząć nowe wyszukiwanie do przodu (nazywane i-searchw przeciwieństwie do reverse-i-search) podczas przeglądania historii. Załóżmy, że tak Ctrl- ri wpisz tekst polecenia w pobliżu miejsca docelowego, a następnie kilkakrotnie naciśnij strzałkę w górę, aby przeoczyć to, czego tak naprawdę szukałeś (lub zmienisz zdanie). Teraz naciśnij Ctrl- si wpisz kilka znaków z tej linii. Zoooom! Prosto do tego.

Wstrzymano do odwołania.
źródło
2
jaki jest wpływ stty -ixon? czy wyłącza coś, co może być potrzebne w innych sytuacjach?
Gregory Pakosz
7
@GregoryPakosz: Wyłącza XON / XOFF ( programowe sterowanie przepływem ), co jest bezużyteczne z klawiatury teraz, gdy komunikujemy się z nieco większą prędkością niż 300 bodów.
Wstrzymano do odwołania.
dziękuję, przeglądałem przez chwilę i doszedłem do tego samego wniosku, w dzisiejszych czasach jest to w większości bezużyteczne
Gregory Pakosz