Pociski takie jak zsh i bash mają hukowe komendy, które zaczynają się od wykrzyknika i rozwijają się do elementów w historii użytkownika.Jak interaktywnie rozwinąć polecenie bang w bash?
Aby uzyskać ostatni argument ostatniej uruchomionej komendy, można użyć !$
, np.
$ echo one two three
$ echo !$ !$ !$
> three three three
W zsh, można rozszerzyć te Bang polecenia interaktywnie:
touch foo bar
ls !$<TAB>
!$
zostanie rozszerzona foo
rolkach.
Jest to bardzo przydatne, ponieważ często zapobiegało mi pomyłkom: naciskając tab
, aby się rozwinąć i upewniłem się, że mam dobrze i C-/
, aby cofnąć rozszerzenie, gdy jestem pewny.
Czy istnieje ustawienie w bash, aby uzyskać interaktywną ekspansję poleceń bang?
co ekspansji podpowłok i zmienne ogólnej w tym zakresie (tzn echo $(uname)<TAB>
do echo Linux
i echo $SHELL<TAB>
do echo /bin/bash
).
Twoje pytanie zakłada, że czytelnik rozumie, jakie są polecenia bang w zsh. Prawdopodobnie możesz dotrzeć do szerszej publiczności, jeśli opisałeś funkcjonalność, której szukasz. Zgaduję, że M-. z argumentem przedrostka jest zbliżony do tego, co chcesz, ale ja go nie szukałem. – tripleee
http://structure.usc.edu/bash/bashref_8.html#SEC106 wyjaśnia dostępne powiązania. M-C-e robi ogólną ekspansję, więc mniej więcej co jest w twoim drugim pytaniu. (Tylko jedno pytanie na pocztę w przyszłości, proszę!) – tripleee
Rozwinąłem nieco, co mam na myśli z poleceniem bang. Założono, że mechanizm jest taki sam dla podpowłok, zmiennych itp., Dlatego uwzględniłem tę drugą część pytania. I masz rację, dziękuję, że 'shell-expand-line' było rzeczywiście tym, czego szukałem. – kba