Gra z makrami:
Powiąż klawisz funkcyjny, F8aby pomnożyć przez dwa ostatnie słowo (w górę poprzedniej spacji) (kod klawisza F8 można znaleźć za pomocą Ctrl-V F8
):
$ bind '"\e[19~": "\C-w\C-y\C-y"'
Można to zrobić na stałe, wysyłając ten sam tekst na adres ~/.inputrc
$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc
następnie wpisz:
echo 0F8F8F8F8
aby otrzymać 2 ^ 4 razy zero. (wciąż 5 naciśnięć klawiszy).
lub wpisz:
echo bookF8F8F8
uzyskać 2 ^ 3 słów książki.
Jeszcze szybciej:
Pomnóż przez 4:
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'
echo 0F8F8
3 naciśnięcie klawisza.
Pomnóż przez 8 (ten sam numer co klawisz funkcyjny)
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
echo 00F8
Nadal 3 naciśnięcia klawiszy.
Oszukać?
Oszukiwać przez pomnożenie przez 16.
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
echo 0F8
Tylko 2 naciśnięcia klawisza. (i wciąż przydatna prosta funkcja)
^^^^^^^^^^^^^^^^ (baza 36? Hah!) :-P
Zwykłe oszukiwanie:
$ bind '"\e[19~": "0000000000000000"'
Echo F8
Tylko 1 (tak: jeden ) naciśnięcie klawisza.
Zmiana powiązania dla ctrl+U:
Wyślij to do ~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
Ponownie przeczytaj ~/.inputrc
plik:
ctrl+Xctrl+R
rób to jak zwykle w emacsie (tak jak chciałeś):
foo --bar = baz ctrl+U16 ctrl+U0
7 klawiszy (po „ustawieniu”).
Nieco krótszy:
Użyj domyślnego „pomnóż przez 4” z „uniwersalnego argumentu” i zakończ z
ctrl+V 0
foo --bar = baz ctrl+Uctrl+Uctrl+V0
Tylko 5 kluczy.
Korzystanie z alt+ndostępu do (arg: n)
foo --bar = baz Alt+16Ctrl+V0
To 6 kluczy, aby uzyskać 16 zer.
Nie zmienia żadnego skrótu klawiaturowego:
Jeśli masz w swoim bashu bash C-u kills the currently-being-typed line
.
To dlatego, że "\C-u":
jest związany z unix-line-discard
.
Ale to może również pomóc:
kiedy to, co jest przed usunięciem kursora, jest również umieszczane w „pierścieniu zabijania”.
Więc ctrl+u
usuwa i ctrl+y
odsuwa to, co zostało usunięte.
Na czystej linii: wpisz, 00
skasuj i dwukrotnie pociągnij do tyłu, aby to zrobić 0000
.
Powtórz, aby uzyskać 00000000
(8 zer), w końcu wpisz polecenie i pociągnij dwa razy z powrotem.
Pierwszy zestaw (7 klawiszy pozostaje ctrlwciśnięty):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
Drugi zestaw (5 klawiszy)
ctrl+Uctrl+Yctrl+Y ctrl+U
Otrzymasz osiem zer w pierścieniu kasowania, a następnie wpisz, co chcesz:
foo --bar = baz ctrl-Y ctrl-Y
uzyskać:
foo --bar=baz 0000000000000000
Gdy wpadniesz na pomysł, możesz również wpisać to, czego potrzebujesz, przejść do początku linii ( ctrl-Y), zrobić jak wyżej (do ośmiu zer), przejść do końca ( ctrl-E) i szarpnąć dwa razy.
foo --bar = baz ctrl-A00ctrl-Uctrl-Yctrl-Y ctrl-Uctrl-Yctrl-Y ctrl-U ctrl-Ectrl-Yctrl-Y
To 15 klawiszy (oprócz samego polecenia).
Nie krótko, wiem, ale to działa tylko z tym, co było dostępne.
To jest trochę krótsze:
0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Yctrl-A foo --bar = baz
To 11 kluczy
know what you want to do
. W złożonym zagnieżdżonym poleceniu, skąd miałbyś wiedzieć, które części chcesz zobaczyć wynik wykonania w historii, a nie samo polecenie? Co ze zmiennymi? Krótko mówiąc, zawsze będzie to miało miejscecode
w historii, a nie wynik działania kodu.