Wie kann ich den Cursor an den Zeilenanfang bewegen, wenn ich die Tastenbindung von Cb in tmux auf ca setze?

74

Ich wechsle einfach vom GNU-Bildschirm zu tmux, wenn ich auf dem Bildschirm drücke, und tippe C-adann aerneut, um zum Anfang der Zeile zu gelangen. Ich frage mich, ob ich bei C-atmux bleibe. Wie kann ich das umgehen?

mko
quelle
@ ChrisJohnsen Vielen Dank für den Hinweis auf diese bestehende Frage, es hilft auch
mko
[STELLUNGNAHME] Während Strg-A auf QWERTY-Tastaturen zweifellos einfacher zu tippen ist als Strg-B, rate ich generell davon ab, Unix-Tools auf diese Weise anzupassen. Wenn Sie nur den Präfixschlüssel von tmux ändern würden, wäre das nicht so schlimm. Aber oft geben sich die Leute nicht damit zufrieden, hier anzuhalten, und sie haben einen so stark angepassten tmux, dass sie nicht mehr in Ordnung sind, wenn sie jemals aufgefordert werden, den Computer eines anderen zu verwenden, der den Standardverhalten folgt. Ich bin der Meinung, dass die beste Vorgehensweise darin besteht, die bereits vorhandenen Standards zu übernehmen und Anpassungen für Ihre eigenen Erweiterungen der Funktionalität zu speichern.
Ryan V. Bissell
[EINE ANDERE MEINUNG] Ich schlage vor, das Ctrl-jPräfix für jeden Terminal-Multiplexer zu verwenden, da sich Emacs und Vim wie die Eingabetaste verhalten (solange Ihre Eingabetaste funktioniert, sollte es Ihnen gut gehen). auch jin Ihrem Hause Reihe; auch die linke Ctrlist normalerweise näher als die rechte, Ctrlso dass Ctrl-jes eine schnelle Kombination ist; jsieht auch aus wie ein Haken.
Isar

Antworten:

82

Wie Sie wissen, C-bist das Standardpräfix in tmux. C-b C-bwird verwendet, um ein tatsächliches C-bZeichen an das Terminal zu senden . Wenn Sie das Präfix auf C-aändern, müssen Sie nur einige Schlüssel neu binden, um zu aktualisieren, welcher den send-prefixBefehl sendet .

Für Ihre .tmux.conf:

# You probably already put this in
set prefix C-a

unbind-key C-b
bind-key C-a send-prefix
chepner
quelle
Wie bewege ich den Cursor, um den Zeilenanfang zu verschieben?
mko
11
Nachdem diese Tastenkombinationen vorhanden sind , C-a C-a. Sie können auch hinzufügen bind-key a send-prefix, um die bildschirmähnliche C-a aReihenfolge beizubehalten.
Chepner
4
Der Punkt send-prefixist, dass es den Präfixschlüssel an die Shell weiterleitet. tmuxbewegt den Cursor nicht an den Zeilenanfang; bashtut es (via readline) wenn es empfängt C-a. Vertrauen Sie mir, der obige Code ist das, was Sie in Ihrem wollen .tmux.conf.
Chepner
1
Wie dumm ich bin, ich habe die tmux-Sitzung nach dem Ändern der Konfigurationsdatei nicht ganz abgeschlossen, jetzt funktioniert es vielen Dank!
mko
11
Sie können C-a :source ~/.tmux.confdie conf-Datei auch neu laden, ohne Ihre tmux-Sitzung zu beenden.
Jackbravo
81

Vielleicht ist es ein Problem mit der Version, die ich verwende, aber wenn der obige Code für Sie nicht funktioniert, versuchen Sie Folgendes:

set -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
user1978011
quelle
10
Danke, das -gist sicherlich für meine Ubuntu-Installation erforderlich, vielleicht sollte die Operation bestätigen, dass die akzeptierte Antwort für ihn noch funktioniert?
Stephenmurdoch
3
Anscheinend ist die Option -g auch für Mac erforderlich
Jardalu
Funktioniert für mich auf dem Mac ohne -g: |
Aviel Gross
1
Der globale Mittelwert "alle Sitzungen" - Ich hatte das gleiche Problem, wobei eine Sitzung aktualisiert wurde, die andere jedoch nicht. -g rettet den Tag.
Neil McGill
-g ist erforderlich für "Bash unter Ubuntu unter Windows"
chriskelly