Ich möchte in der Lage sein, Text in der Befehlszeile in Bash mit denselben Tastaturbelegungen zu kopieren und einzufügen, die Emacs standardmäßig verwendet (z. B. mit C-space
for set-mark
, M-w
um Text zu kopieren C-y
, M-y
einzufügen usw.).
Die GNU Bash-Dokumentation besagt, dass Bash einige dieser Schlüsselbindungen enthält, die standardmäßig eingerichtet sind.
Zum Beispiel funktioniert yanking ( C-y
) auf meinem Terminal standardmäßig. Allerdings kann ich nicht bekommen set-mark
und copy
Befehle an die Arbeit, und sie scheinen nicht auf irgendwelche Tasten standardmäßig gebunden zu sein.
Normalerweise kann ein Benutzer seine eigenen Tastenkombinationen definieren, indem er sie hinzufügt .inputrc
. Daher habe ich in der Dokumentation die folgenden Bash-Funktionen gesucht und gefunden, die mir vermutlich dabei helfen können, das von mir gewünschte Emacs-ähnliche Verhalten (dh set-mark
mit C-space
und copy
mit M-w
) zu definieren.
copy-region-as-kill ()
Kopieren Sie den Text in der Region in den Kill-Buffer, damit Sie sofort daran ziehen können. Standardmäßig ist dieser Befehl nicht gebunden.
und
set-mark (C-@)
Setzen Sie die Marke auf den Punkt. Wenn ein numerisches Argument angegeben wird, wird die Markierung auf diese Position gesetzt.
Wenn ich das richtig verstehe, bedeutet dies, dass das Gerät copy-region-as-kill
standardmäßig nicht an eine Tastatursequenz set-mark
gebunden ist , während es standardmäßig an eine Tastatursequenz gebunden ist C-@
.
Ich habe C-@
mein Terminal ausprobiert , glaube aber nicht, dass es ausgeführt wird, set-mark
da beim Bewegen des Cursors kein hervorgehobener Text angezeigt wird. Auf jeden Fall habe ich versucht , den Funktionen und höher in my Tastaturbelegungen ( M-w
und C-
) hinzuzufügen und sie dann mit neu zu laden , aber das hat nicht funktioniert. Ich weiß, dass meine anderen Einträge in Arbeit sind, weil ich andere benutzerdefinierte Tastenkombinationen darin definiert habe.copy-region-as-kill
set-mark
.inputrc
C-x C-r
.inputrc
Was mache ich falsch? Vermisse ich etwas?
quelle
bash
und welches Terminalprogramm verwenden Sie?Antworten:
Es hebt die Auswahl nicht hervor, aber ansonsten denke ich, dass es gut funktioniert.
Versuche zu rennen
um sicherzustellen, dass das
C-x C-r
tatsächlich funktioniert hat.Es sollte heißen:
Danach sollte es gut funktionieren.
Beispiel:
gibt mir
Wenn Sie jemals wissen wollen, wo es
mark
ist, tun Sie es einfachC-x
C-x
.Beispiel:
Setzt den Cursor wieder an die Stelle, an der Sie die Markierung gesetzt haben (den Anfang der Zeile).
Ich glaube auch nicht, dass Sie die
set-mark
Bindung hinzufügen müssen . Habe ich nicht.(Beachten Sie, dass die meisten Terminals senden,
C-@
wennC-Spc
gedrückt wird. Ich gehe davon aus, dass dies auch bei Ihnen der Fall ist.)Wenn dies alles fehlschlägt:
emacs -nw
auf dem gleichen Endgerät?quelle
\e
oder\M-
. Siehe readline init-Dateisyntax .Ich binde auch Cw für die Kill-Region . Hier meine .inputrc:
quelle