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


11

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 anzuzeigen, damit ich es an eine Tastenkombination in ~ / .inputrc binden kann?

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


Nun, ich werde verdammt sein. Ich wusste nichts über diese Funktion.
Charlie Martin

Ich benutze Gnome-Terminal und Gconf-Editor zum Konfigurieren von Tastaturkürzeln.
Saeedgnu

Antworten:


3

Es stellt sich heraus, dass es wirklich nicht möglich ist, das heißt, es war erst heute Abend möglich!

Da ich sowieso neugierig war, mich mit dem Bash-Quellcode zu beschäftigen, habe ich diese Funktion hinzugefügt :). Wir werden sehen, ob die Bash-Betreuer meinen Patch anwenden .


1

Das Beste, was ich mir vorstellen kann, ist zu versuchen:

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

Oder wenn das Makro mehrere Zeilen hat, versuchen Sie:

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.

Gehen Sie dann hinein und bearbeiten Sie die letzte Zeile, um das richtige Präfix und Suffix für das zu erhalten, was Sie erreichen möchten ...


Speichern Sie einen Schritt, bearbeiten Sie .inputrc, positionieren Sie ihn an der gewünschten Stelle, an der das Makro und Cx e 'eingeben' sollen. Aber ja, ich würde sagen, das ist der beste Weg, natürlich können Sie es überall platzieren, es ist nur ein paar Tastenanschläge. Wenn Sie sich nicht im richtigen Modus / Ort / Programm befinden, werden Sie wahrscheinlich missverstandene Eingaben erhalten. Aber man würde das erwarten, wenn Sie das Makro nicht an der richtigen Stelle verwenden würden, oder?
Lornix

0

Fügen Sie diese Zeile hinzu zu .inputrc:

alias macro

Oh, danke, dass du das korrigiert
hast

0

Es scheint, dass Sie mit .inputrc nur Ihre Befehle bearbeiten können. Ich habe es auch versucht, konnte dump-macroses aber nicht zum Laufen bringen, und es gibt auch nicht viel 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 ist es meiner Meinung nach am besten, inputrc gemäß den Richtlinien im ersten Link unten auf der Seite zu bearbeiten . Das ist ganz einfach.

Der zweite Link ist eine beispielhafte inputrc- Datei, die Ihnen hilft, herauszufinden, wie Sie Makros einrichten.

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

http://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#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, der ganze Punkt ist nicht das Makro mit der Hand zu schreiben, sondern das man ausdrucken, ich gerade aufgenommen ...
mgalgs

Es stellt sich heraus, dass dump-macroseinfach ausgedruckt wird, was Ihre aktuell definierten Makros ausgeben würden.
mgalgs
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.