Czy istnieje sposób na użycie Ctrl-R po wpisaniu części polecenia w bash?
13
W bash polecenie Ctrl+ rjest bardzo przydatne, wpisuję Ctrl+ rwhateveri przeszukuje moją historię w poszukiwaniu poleceń zawierających to słowo whatever. Ale jeśli napiszę whateveri zdam sobie sprawę, że chciałbym wyszukać to słowo i nacisnąć Ctrl+ rnic się nie dzieje.
Czy jest jakiś sposób, by uderzyć w klawisz i sprawić, żeby zachowywał się tak, jakbym wpisał Ctrl+ rwhateverzamiast whateverCtrl+ r?
Mam w swoim .inputrc:
"\C-p": history-search-backward
ale działa to tylko wtedy, gdy początek linii jest taki sam.
Możesz przeszukiwać historię bash, korzystając z tego, co już wpisałeś.
Załóżmy, że właśnie wpisałeś curl -I http://superuser.comi zapomniałeś wpisać Ctrl+ r:
$ curl -I http://superuser.com
Jeśli chcesz przeprowadzić wyszukiwanie w swojej historii, przejdź do początku wiersza w pierwszej kolejności ( Ctrl+ a), wpisz i-search ( Ctrl+ r) i wpisz Ctrl+ y. Powinno to przeprowadzić wyszukiwanie przy użyciu zawartości całego wpisanego już tekstu:
Jeśli chcesz to wszystko zrobić jednym naciśnięciem klawisza, możesz powiązać pojedynczy klawisz z makrem klawiatury. Jeśli chcesz użyć, powiedzmy, F12uruchom:
Nie jestem pewien, czy jest to problem z moją konfiguracją, ale po c-rwpisaniu wpisanie c-yniczego tam nie wkleja. Jeśli piszę c-ysam, po prostu wkleja tekst, więc nie mogę łączyć dwóch poleceń ...
przeglądałem
Czy najpierw przejdziesz do początku linii? (Ca)
hso
1
Masz rację, nie miałem zamiaru zaczynać linii. Teraz mam w moim .inputrc "\C-xr": "\C-a\C-r\C-y"i działa bardzo dobrze! Dziękuję za tę odpowiedź.
skeept
Wydaje mi się, że po raz trzeci googlowałem to control+a control+r control+y! Dzięki, ta odpowiedź jest zawsze dostępna! :)
Dr Beco,
2
Zaoszczędź cztery ostrzeżenia:
Unikaj sekundy Ctrl-R, dodając do swojego .bashrc(lub do swojego, .inputrcjeśli wolisz):
Nadal nie jest dla mnie jasne, dlaczego Cy wkleja polecenie w pole wyszukiwania (Ca nie powinno być poleceniem „kopiuj”, prawda?) I dlaczego Cw wkleja tylko pierwsze słowo.
marcus
tak, C-anie tylko się porusza, ale zapamiętuje (kopiuje) przenoszoną treść.
Dr Beco
Nie mogę potwierdzić tego zachowania (wystarczy wypróbować Ca Cy), myślę, że bardziej prawdopodobne jest, że Cr ma wbudowane specjalne przypadki, ale nie wiem, gdzie są udokumentowane.
c-r
wpisaniu wpisaniec-y
niczego tam nie wkleja. Jeśli piszęc-y
sam, po prostu wkleja tekst, więc nie mogę łączyć dwóch poleceń ..."\C-xr": "\C-a\C-r\C-y"
i działa bardzo dobrze! Dziękuję za tę odpowiedź.control+a control+r control+y
! Dzięki, ta odpowiedź jest zawsze dostępna! :)Zaoszczędź cztery ostrzeżenia:
Unikaj sekundy
Ctrl-R
, dodając do swojego.bashrc
(lub do swojego,.inputrc
jeśli wolisz):Spowoduje to zmapowanie ALT-R do CTR-A CTR-R CTR-Y CTR-R
Opis:
\C-xr
( CTR-X CTR-R )źródło
C-a
nie tylko się porusza, ale zapamiętuje (kopiuje) przenoszoną treść.