Ich möchte F1eine Zeichenfolge mit der Eingabetaste treffen und sie automatisch in das Terminal eingeben, in dem ich mich befinde. Ich möchte sie nicht ausführen, .bash_profile
weil ich möchte, dass sie nicht auf jedem Server, auf dem ich mich befinde, lokal an einer Stelle konfiguriert wird ssh
.
Wie mache ich das?
command-line
bash
user634806
quelle
quelle
Antworten:
OK, die Antwort, die ich habe und die fast genau wie gewünscht funktioniert, ist tatsächlich überraschend komplex. Mit können Sie
xmacro
Tastenanschläge aufnehmen und wiedergeben.Installieren Sie xmacro
Zeichnen Sie ein Makro auf
Drücken Sie nun ESC(um die Taste "Abbrechen" für die Aufnahme aufzuzeichnen), geben Sie den gewünschten Text ein und drücken Sie ESC erneut, um die Aufnahme zu stoppen. Das aufgezeichnete Makro befindet sich jetzt in der Datei
test.macro
. Sie können es mit einem Texteditor bearbeiten.Testen Sie, ob das Makro funktioniert
(optional, empfohlen) Erstellen Sie ein Skript mit den oben genannten Befehlen. Speichern Sie es als macro.sh:
Mach es ausführbar:
Ein kleines Problem bleibt. xmacro gibt die genauen Tastatureingaben wieder. Wenn Sie jedoch eine Verknüpfung definieren und das Skript über die Verknüpfung ausführen, werden die Tasten vor dem Loslassen der Verknüpfung wiedergegeben, als ob Sie mit der Eingabe begonnen hätten, ohne die Taste loszulassen. Sie müssen der Datei test.macro die folgende Zeile voranstellen:
Dadurch wird das Loslassen der F1-Taste simuliert.
Erstellen Sie mithilfe der Tastatureinstellungen (Sie können über die Einstellungen oder durch Eingabe von `gnome-control-center keyboard auf diese zugreifen) eine neue Verknüpfung unter" Benutzerdefinierte Verknüpfungen "und weisen Sie ihr F1 zu.
OK, aber es gibt noch eine Einschränkung: Die F1-Verknüpfung funktioniert jetzt in jeder Anwendung, nicht nur im Terminal. Ich weiß nicht, wie ich es lösen soll. evtl.
macro.sh
müsste man in dem testen welches fenster zuerst den fokus hat und prüfen ob die kennung dieses fensters terminal ist.quelle