Drücken Sie alt + numeric in bash und Sie erhalten (arg [numeric]) was ist das?


101

Drücken Sie alt + numeric in bash und Sie erhalten (arg [numeric]) was ist das?

(Diese Art von Frage ist besser geeignet, um einen Menschen zu fragen, anstatt zu versuchen, die richtige Terminologie für die Suche in der Dokumentation über das Internet zu "erraten").


Wenn Sie set keymap viin ~/.inputrc, dann schlagen Esc + Digitführt Sie auf den gleichen Modus, wie für eine vi Befehlswiederholung Vorbereitung (aber man kann nicht von ihnen verwenden vi Bindungen auf, nur hässlich Emacs diejenigen :-()
Ciro Santilli郝海东冠状病六

Meine Suchphrasen waren Alt Number Terminal Linux , Alt + 1-9 Terminal und schließlich Shell Alt + 1, was mich hierher brachte.
Show

Antworten:


62

Der Begriff, nach dem Sie googeln möchten, lautet:

"readline arguments"

Dies führt beispielsweise zu diesem Kapitel aus dem Bash-Referenzhandbuch :

Sie können numerische Argumente an Readline-Befehle übergeben. Manchmal dient das Argument als Wiederholungszählung , manchmal ist es das Zeichen des Arguments, das von Bedeutung ist. Wenn Sie ein negatives Argument an einen Befehl übergeben, der normalerweise in Vorwärtsrichtung ausgeführt wird, wird dieser Befehl in Rückwärtsrichtung ausgeführt. Um beispielsweise Text an den Anfang der Zeile zu bringen, geben Sie möglicherweise 'M-- C-k' ein.

Die allgemeine Möglichkeit, numerische Argumente an einen Befehl zu übergeben, besteht darin, vor dem Befehl Metaziffern einzugeben. Wenn die erste eingegebene 'Ziffer' ein Minuszeichen ('-') ist, ist das Vorzeichen des Arguments negativ. Nachdem Sie eine Metaziffer eingegeben haben, um das Argument zu starten, können Sie den Rest der Ziffern und dann den Befehl eingeben. Um dem Cd-Befehl beispielsweise ein Argument von 10 zu geben, können Sie 'M-1 0 C-d' eingeben, wodurch die nächsten zehn Zeichen in der Eingabezeile gelöscht werden.

Damit das funktioniert, müssen Sie wissen , wo die Meta - Taste zugeordnet ist: manchmal ist es Alt, manchmal ist es Esc, cool Computer eine eigene Meta - Taste haben;)

Für diejenigen, die mit der Syntax nicht vertraut sind, ist 'M-- Ck' das Äquivalent von Meta_key+ - Ctrl+ k. "M" ist eine Abkürzung für den Meta-Schlüssel, der, wie erwähnt, je nach System variiert. "C" ist eine Abkürzung für den Strg-Schlüssel. Das "-" nach einem Zeichen (wie "M-") wird nicht eingegeben, sondern zeigt gleichzeitiges Drücken von Tasten an.


2
Gibt es eine Möglichkeit, numerische Zeichen mit numerischen Argumenten zu wiederholen? Angenommen, ich wollte 128 Nullen ('0') schreiben, ich würde denken, ich könnte Alt + 128 und dann 0 schreiben, aber das gibt mir (arg: 1280(obwohl ich die Alt-Taste loslasse). Wie würde ich mit diesem Mechanismus Zahlen wiederholen?
Victor Zamanian

1
@ Victor: interessante Fragen. Ich kann mir keine Möglichkeit vorstellen, dies mit readline zu tun. Sie sind wahrscheinlich besser dran mit so etwas wie$(perl -e 'print "0" x 128')

1
@ VictorZamanian sehen eine andere Antwort in dieser Frage
TTT

28

Um numerische Zeichen zu wiederholen - z. B. 128 Nullen - drücken Sie Folgendes:

Meta-key + 1 2 8 Ctrl + v 0


Ohhhh, es ist nur so vim(vielleicht auch Emacs, ich kann mich nicht erinnern).
Sridhar Sarnobat

12

Versuche dies. Typ Alt 4, dann geben T, dann drücken Enter.

Bearbeitet, um das schickere HTML zu verwenden.


9
Was passiert für dich? Ich bekomme nichts.
Mortimer McMire

1
Es twerden vier Zeichen eingefügt.
Wesley Baugh

4
In meiner Bash-Version (4.4) muss die EINGABETASTE nicht gedrückt werden.
Luca76

9

Es wiederholt den nächsten Befehl so oft wie in Emacs. ZB M-1-0 C-pbewegt 10 Verlaufselemente zurück. rückt M-4 C-hvier Zeichen zurück, M-3 M-tbewegt das vorherige Wort dreimal vorwärts und so weiter. Hier verwende ich die M-Bedeutung "Meta" für die Alt-Taste, wie es in Bash üblich ist.


9

Ich weiß, dass dies bereits eine akzeptierte Antwort ist, aber ich habe einige nützliche Beispiele gefunden , die neben der einfachen Wiederholung von Zeichen auch zusätzliche Verwendungszwecke demonstrieren. Die Ziffernargumente können für alle möglichen Dinge gelten. Zum Beispiel löscht die Sequenz "Alt + 3, Escape, Backspace" 3 Wörter rückwärts.


4

Ich weiß es nicht, aber wenn Sie alt + numerisch drücken und dann ein Zeichen drücken, erhalten Sie num Zeichen: (arg: 123) + a -> 123 mal "a"


8
Sie wissen es nicht, aber Sie wissen es? % - |

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.