Hallo. Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird. Nach langem hin und herblättern und lesen habe ich herausgefunden, dass man dazu das Bashbuiltin bind benutzt. Aber trotz Manpage und diversen Infoseiten verstehe ich immer noch nicht, wie der Syntax ist. Für die Taste Alt müsste er wohl mit bind \M und für die STRG mit bind \C anfangen. Allerdings habe ich bisher mindestens drei verschiedene Syntaxformen vor Augen gehabt und bin doch ziemlich verwirrt. Kann mir jemand von euch helfen? Grüße Marcus Habermehl
Hallo, On Sun, 29 Jun 2003, Marcus Habermehl schrieb:
Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird.
Nach langem hin und herblättern und lesen habe ich herausgefunden, dass man dazu das Bashbuiltin bind benutzt.
Nein. »Bind a key sequence to a Readline function, or to a macro.« ^^^^^^^^ Siehe auch 'bind -l'. Achso, es gibt AFAIR ein Tool, dass das von dir gewuenschte macht, mir faellt aber kein Name ein, such mal bei freshmeat, sourceforge, google... -dnh -- "[...]Yes, Mr. Gates, recently you have helped open source succeed -- in much the same way Osama bin Laden has helped beef up airport security lately." -- Eric S. Raymond, 9.11.2001
Am Sonntag, 29. Juni 2003 04:08 schrieb David Haller:
Hallo,
On Sun, 29 Jun 2003, Marcus Habermehl schrieb:
Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird.
Nach langem hin und herblättern und lesen habe ich herausgefunden, dass man dazu das Bashbuiltin bind benutzt.
Nein.
»Bind a key sequence to a Readline function, or to a macro.«
Das habe ich auch öffter gelesen. Leider ist mein Englisch eher bescheiden. Deswegen kann ich mit Readline function nix anfangen. Was bedeutet das denn? Laut den Infoseiten von screen soll ich die Tastenkombinationen von screen mit bind ändern kann. Ist das vielleicht mit Readline gemeint? Dann würde das nämlich einen Sinn ergeben.
Siehe auch 'bind -l'.
Achso, es gibt AFAIR ein Tool, dass das von dir gewuenschte macht, mir faellt aber kein Name ein, such mal bei freshmeat, sourceforge, google...
-dnh
Bei freshmeat und sourceforge habe ich nicht wirklich was gefunden. Bei Google habe ich mit linux key bind keybindings nix gefunden. :-( Marcus Habermehl
Hallo, On Sun, 29 Jun 2003, Marcus Habermehl schrieb:
Am Sonntag, 29. Juni 2003 04:08 schrieb David Haller:
On Sun, 29 Jun 2003, Marcus Habermehl schrieb:
Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird.
Nach langem hin und herblättern und lesen habe ich herausgefunden, dass man dazu das Bashbuiltin bind benutzt.
Nein.
»Bind a key sequence to a Readline function, or to a macro.«
Das habe ich auch öffter gelesen. Leider ist mein Englisch eher bescheiden. Deswegen kann ich mit Readline function nix anfangen. Was bedeutet das denn?
Die libreadline (siehe 'man readline' und 'info readline') ist (bei der bash) zustaendig dafuer, wie die Kommandozeile editiert werden kann und zusammen mit der libhistory auch fuer die history. Die Funktionen (siehe 'bind -l') der readline koennen eben mit 'bind' an verschiedene Tastaturkombinationen gebunden werden.
Laut den Infoseiten von screen soll ich die Tastenkombinationen von screen mit bind ändern kann.
Ich kenne screen nicht selbst, daher weiss ich nicht wie das gemeint sein koennte... Da kennen sich andere (Bernd?) besser mit aus, die staendig mit screen arbeiten.
Ist das vielleicht mit Readline gemeint? Dann würde das nämlich einen Sinn ergeben.
Jein, screen arbeitet AFAIK schon mit readline zusammen, die Tastenkombinationen sollen ja auch nicht kollidieren...
Bei freshmeat und sourceforge habe ich nicht wirklich was gefunden. Bei Google habe ich mit linux key bind keybindings nix gefunden. :-(
Das war auch nicht auf screen gemuenzt, sondern ich dachte wg. "einen Befehl ausfuehren", dass du bel. Programme ausfuehren willst, z.B. die Lautstaerke via Taste zu aendern. Dafuer gibt's z.B. lineak. -dnh -- "Here, in the bare dark face of night -- the LSV (Tundra Class) A calm unhurried eye draws sight "Serious Callers Only" -- We see in what we think we fear in "Excession" The cloudings of our thought made clear" by Iain M. Banks
Am Sonntag, 29. Juni 2003 15:56 schrieb David Haller: [...]
Bei freshmeat und sourceforge habe ich nicht wirklich was gefunden. Bei Google habe ich mit linux key bind keybindings nix gefunden. :-(
Das war auch nicht auf screen gemuenzt, sondern ich dachte wg. "einen Befehl ausfuehren", dass du bel. Programme ausfuehren willst, z.B. die Lautstaerke via Taste zu aendern. Dafuer gibt's z.B. lineak.
-dnh
Irgendwie ist es ja auch ein Befehl, der ausgeführt wird. Ich will nämlich die Tastenkombination für die Fensterliste ändern. Ich finde "STRG+A Shift+2" etwas umständlich. Die Befehlszeile dazu ist nämlich screen -X windowlist. Für mich ist es doch irgendwo ein Programm, dass hier aufgerufen wird. Marcus Habermehl
Hallo, On Sun, 29 Jun 2003, Marcus Habermehl schrieb:
Am Sonntag, 29. Juni 2003 15:56 schrieb David Haller: [..]
Das war auch nicht auf screen gemuenzt, sondern ich dachte wg. "einen Befehl ausfuehren", dass du bel. Programme ausfuehren willst, z.B. die Lautstaerke via Taste zu aendern. Dafuer gibt's z.B. lineak.
-dnh
Irgendwie ist es ja auch ein Befehl, der ausgeführt wird. Ich will nämlich die Tastenkombination für die Fensterliste ändern. Ich finde "STRG+A Shift+2" etwas umständlich.
Die Befehlszeile dazu ist nämlich screen -X windowlist. Für mich ist es doch irgendwo ein Programm, dass hier aufgerufen wird.
Ahso... Nun, das C-a ist ja die allgemeine screen-Prefix, um das wirst du kaum herumkommen. Ob und wie du dir dann das folgende anpassen kannst weiss ich nicht. Falls du aber den Befehl "screen ..." per Tastenkombination ausfuehren willst, dann suchst du in der Tat nach einem Tool wie lineak. -dnh -- "My manner of thinking, so you say, cannot be approved. Do you suppose I care?" -- Marquis de Sade
Marcus Habermehl wrote:
Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird.
Kann mir jemand von euch helfen?
Wenn ich's richtig mitbekommen habe, moechtest du die Screen Tastenkombi fuer "Windowliste anzeigen" aendern. "man screen" birgt in dem Abschnitt "DEFAULT KEY BINDINGS" folgenden ersten Absatz: 'As mentioned, each screen command consists of a "C-a" followed by one other character. For your convenience, all commands that are bound to lower-case letters are also bound to their control character counterparts (with the exception of "C-a a"; see below), thus, "C-a c" as well as "C-a C-c" can be used to create a window. See section "CUSTOMIZATION" for a description of the command.' CUSTOMIZATION wiederrum folgenden Satz: 'When screen is invoked, it executes initialization commands from the files "/usr/local/etc/screenrc" and ".screenrc" in the user's home directory.' wenn du nun also in die /home/marcus/.screenrc die folgende Zeile einsetzt, sollte die Liste auch bei einer anderen Kombi auftauchen: bind y windowlist -b bind ^y windowslist -b -- Have fun, Peter
Am Montag, 30. Juni 2003 14:33 schrieb Peter Wiersig:
Marcus Habermehl wrote:
Ich hätte gerne, dass in einer Konsole ein Befehl mit einer bestimmten Tastenkombination ausgeführt wird.
Kann mir jemand von euch helfen?
Wenn ich's richtig mitbekommen habe, moechtest du die Screen Tastenkombi fuer "Windowliste anzeigen" aendern.
Genau. Ich finde, dass " nicht gerade einfach ist. Habe mir da beinahe die Finger gebrochen. ;-)
"man screen" birgt in dem Abschnitt "DEFAULT KEY BINDINGS" folgenden ersten Absatz: 'As mentioned, each screen command consists of a "C-a" followed by one other character. For your convenience, all commands that are bound to lower-case letters are also bound to their control character counterparts (with the exception of "C-a a"; see below), thus, "C-a c" as well as "C-a C-c" can be used to create a window. See section "CUSTOMIZATION" for a description of the command.'
CUSTOMIZATION wiederrum folgenden Satz: 'When screen is invoked, it executes initialization commands from the files "/usr/local/etc/screenrc" and ".screenrc" in the user's home directory.'
Von dem Ganzen habe ich vielleicht die Hälfte verstanden. Mein Englisch lässte leider ziemlich zu wünschen übrig.
wenn du nun also in die /home/marcus/.screenrc die folgende Zeile einsetzt, sollte die Liste auch bei einer anderen Kombi auftauchen: bind y windowlist -b bind ^y windowslist -b
Das hat nur Fehlermeldungen verursacht. Aber der Ansatz war richtig und hat mich auf die richtige Spur gebracht. Des Rätsels Lösung ist "bind y windowlist", wenn man die Fensterliste mit "Strg+A Y" öffnen möchte. Wie sieht es denn jetzt aus, wenn ich Tab verwenden möchte. Wenn ich Tab anstelle von Y eintrage, erzählt er mir paar Sekunden lang was von ^x und oktal. Oder auch eine der Funktionstasten. Kann ich anstatt von Buchstaben, wie hier jetzt y auch zum Beispiel 0x34 angeben? Ich gehe mal davon aus, dass das mit oktal gemeint ist. So genau kenne ich mich nicht damit aus. Ich habe in den verschiedenen ManPages und InfoSeiten was von <TAB> und TAB gelesen. Das funktioniert aber beides nicht. Vielleicht bin ich auch nur zu blond, um das zu kapieren. ;-) Gruß Marcus Habermehl
Marcus Habermehl wrote:
Kann ich anstatt von Buchstaben, wie hier jetzt y auch zum Beispiel 0x34 angeben? Ich gehe mal davon aus, dass das mit oktal gemeint ist. So genau kenne ich mich nicht damit aus.
Wie du auf 0x34 kommst ist mir nicht klar: "0xnn" heisst Hexadezimal. In "man ascii" steht neben Hex 34 die Ziffer 4. Fuer das y ist der Oktalcode 0171 anzugeben. Fuer den Tab muesste es 011 sein. -- Have fun, Peter
Am Dienstag, 1. Juli 2003 07:40 schrieb Peter Wiersig:
Marcus Habermehl wrote:
Kann ich anstatt von Buchstaben, wie hier jetzt y auch zum Beispiel 0x34 angeben? Ich gehe mal davon aus, dass das mit oktal gemeint ist. So genau kenne ich mich nicht damit aus.
Wie du auf 0x34 kommst ist mir nicht klar: "0xnn" heisst Hexadezimal. In "man ascii" steht neben Hex 34 die Ziffer 4.
[...] Frag mich nicht. War mehr ein Schuss ins Blaue. Ich hatte in XKeyCaps nachgeschaut. Und da unter KeyCode, und nicht unter ASCII. Das mit den Tasten ist für mich noch etwas rätselhaft. Aber _langsam_ steige ich dahinter.
Fuer das y ist der Oktalcode 0171 anzugeben. Fuer den Tab muesste es 011 sein.
Laut XKeyCaps ist das 100 % korrekt. Vieelen Dank, für deine Hilfe. Ich habe mich jetzt für STRG+A A entschieden. Ist recht einfach, da man ja eh den Finger auf A hat. Faulheit lässt grüßen. ;-) Gruß Marcus Habermehl
participants (3)
-
David Haller
-
Marcus Habermehl
-
Peter Wiersig