Gibt es eine Möglichkeit, ein Tastaturmakro in Bash zu speichern?

2565
mgalgs

Ich möchte ein Tastaturmakro, das ich mit C-x (und aufgenommen habe, dauerhaft speichern C-x ). Gibt es eine einfache Möglichkeit, die Quelle für mein neu aufgenommenes Makro zu "sehen", damit ich es in ~ / .inputrc an eine Tastenkombination binden kann?

Ich dachte, ich dump-macroswürde es tun, aber es scheint nicht ...

11
Nun, ich werde verdammt sein. Ich wusste nichts über diese Funktion. Charlie Martin vor 12 Jahren 0
Ich verwende gnome-terminal und gconf-editor zum Konfigurieren von Tastenkombinationen. saeedgnu vor 12 Jahren 0

4 Antworten auf die Frage

2
mgalgs

Es stellte sich heraus, dass es wirklich nicht möglich ist, das war bis heute Abend nicht möglich!

Da ich neugierig war, in den bash-Quellcode zu graben, habe ich dieses Feature hinzugefügt :). Wir werden sehen, ob die Bash-Betreuer meinen Patch anwenden .

1
Dobes Vandermeer

Am besten könnte ich mir vorstellen:

echo >>.inputrc '<ctrl-x e>' 

Oder wenn das Makro mehrere Zeilen hat, versuchen Sie Folgendes:

echo >>.inputrc <<EOF <ctrl-x e> EOF 

Wenn Sie Steuerzeichen verwendet haben, möchten Sie möglicherweise ein Sed einfügen, um sie durch die richtigen Escape-Codes für inputrc zu ersetzen.

Dann gehen Sie rein und bearbeiten Sie die letzte Zeile, um das richtige Präfix und Suffix für das zu erreichen, was Sie erreichen wollen ...

Speichern Sie einen Schritt, bearbeiten Sie .inputrc, positionieren Sie ihn an die Stelle, an der Sie das Makro haben möchten, und drücken Sie Cx e, um es einzugeben. Aber ja, ich würde sagen, das ist der beste Weg, natürlich können Sie es überall platzieren, wo Sie wollen, es ist nur ein Haufen Tastenanschläge. Wenn Sie sich nicht im "richtigen Modus / Ort / Programm" befinden, werden Sie wahrscheinlich missverstandene Eingaben erhalten. Aber man würde erwarten, dass man das Makro nicht an der richtigen Stelle verwenden würde, richtig? lornix vor 12 Jahren 0
0
Dennis Hodapp

Anscheinend können Sie mit .inputrc nur Ihre Befehle bearbeiten. Ich habe es auch probiert, konnte dump-macroses aber nicht zum Laufen bringen und es gibt auch keine Dokumentation darüber. Vielleicht funktioniert es nicht oder ist veraltet.

Wenn es einen Befehl wie xevfür Emacs-Bindungen gäbe, wäre das hilfreich. In jedem Fall denke ich, dass Sie am besten Inputrc gemäß den Richtlinien im ersten Link unten auf der Seite bearbeiten . Es ist ganz leicht zu machen.

Der zweite Link ist eine Beispiel- Inputrc- Datei, mit deren Hilfe Sie Makros einrichten können.

Daneben gibt es auch einen coolen Befehl, bind -Pder alle Ihre Makros auflistet.

http://www.gnu.org/software/bash/manual/html_node/M Miscellaneous-Commands.html#M Miscellaneous-Commands

Hier ist ein Beispiel für eine Inputrc-Datei:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File

Ja, das Wichtigste ist, das Makro nicht ** von Hand schreiben zu müssen, sondern das gerade aufgezeichnete auszugeben ... mgalgs vor 12 Jahren 0
Es stellt sich heraus, dass "Dump-Makros" einfach das drucken, was Ihre aktuell definierten Makros ausgeben würden. mgalgs vor 12 Jahren 0
0
FALL3N

Fügen Sie diese Zeile hinzu .inputrc:

alias macro 
oh danke für das korrigieren, mein schlechtes: / FALL3N vor 12 Jahren 0