Ich bin an iTerm2 (oder Terminal.app für diesen Fall) unter OS X gewöhnt. Aber ich möchte tmux (oder screen) verwenden, aber das Problem ist ähnlich wie bei beiden Apps.
Meine Idee ist es, einen einzelnen iTerm-Tab mit einer TMUX-Sitzung zu haben, die aus mehreren Tabs besteht. Um den Übergang durchzuführen, muss ich unter tmux eine grundlegende Funktion konfigurieren: Wechseln Sie mit cmd + n zum Tab 'n' (wie Firefox, Chrome, iTerm2 selbst usw.).
Ich kann jedoch keine Möglichkeit finden, die cmd-Taste auf der Mac-Tastatur zuzuordnen. Ich habe zuerst versucht, cmd als Präfixschlüssel zu implementieren, ohne Erfolg. Ich habe versucht, Einstellungen vorzunehmen
set-option -g prefix M-a (hoping for Meta-a)
set-option -g prefix ^a (hoping for ^ to work)
aber nichts geht. Ist das möglich? Ich muss das Präfix nicht wirklich an cmd binden, möchte aber in der Lage sein, die tmux-Tabs mit cmd + n zu ändern.
Vielen Dank
Antworten:
Sie möchten eine Tastenfolge aufzurufen (zuerst
Ctrl-b
, dann n im Bereich von 0 bis 9).Verwenden Sie dazu am besten ein Tastaturkürzel wie Butler oder Keyboard Maestro .
Mit Butler :
Wählen Sie + »Smart Item» Tastenanschläge , konfigurieren Sie den Hotkey
Cmd-1
. Drücken SieCtrl-B
und dann1
für die Tastenanschläge . Konfigurieren Sie es so, dass es nur in Terminal (oder iTerm) gültig ist. Es wird Sie warnen, dass andere Anwendungen es möglicherweise nicht mögen, aber Sie wissen das bereits.Verwenden von Keyboard Maestro :
Erstellen Sie links eine neue Gruppe, die nur in Terminal (oder iTerm) verfügbar ist.
Fügen Sie ein neues Element hinzu, das durch Hotkey-Trigger (
Cmd-1
) ausgelöst wird, und fügen Sie seinen Aktionen zwei Tastenanschläge hinzu :Ctrl-B
und1
.Vielleicht möchten Sie sich auch dieses Thema ansehen - es wird jedoch nicht verwendet
Command
und funktioniert bei mir nicht mit Terminal.Aus der tmux-Dokumentation :
Sie unterstützen keine dritte Modifikationstaste.
quelle
In iTerm2 können Sie Hex-Codes, die an das Terminal gesendet werden, Verknüpfungen zuordnen. Gehe zu iTerm2 Einstellungen -> Schlüssel. Klicken Sie unter Globale Tastenkombinationen auf das Pluszeichen (+) und geben Sie die gewünschte Tastenkombination ein, z. B. cmd + 1, die erfasst wird. Wählen Sie dann "Hex-Code senden". Geben Sie in das angezeigte Feld die Hex-Codes ein, die durch Leerzeichen getrennt an tmux gesendet werden sollen. Strg-B ist 0x02. Geben Sie für "Strg-B 1" "0x02 0x31" ein. Weitere Hex-Codes finden Sie hier: http://www.nthelp.com/ascii.htm
Ich habe Cmd mit h, j, k, l zugeordnet, um mich zwischen den tmux-Fenstern zu bewegen, und Cmd mit% und ", um die Teilungen zu erstellen. Ich werde wahrscheinlich etwas Ähnliches tun, um mich zwischen vim-Teilungen mit einer Steuertaste zu bewegen.
quelle
Spezielle Verknüpfungen können mit Terminal.app erstellt werden. Ich habe es neulich herausgefunden, aber das war vielleicht schon vor dem Löwen möglich.
Gehen Sie zu Einstellungen> Einstellungen und klicken Sie auf die Registerkarte "Tastatur". Jetzt müssen Sie eine neue Tastenkombination hinzufügen, indem Sie auf das Plus-Symbol unter dem Feld klicken. Jetzt möchten Sie eine Tastenkombination festlegen, die "Zeichenfolge an Shell sendet".
Beispiel: Angenommen, ich möchte festlegen, dass M-LeftArrow zugeordnet wird
prefix-p
(vorheriges Fenster).Geben Sie nun einfach
prefix-p
in das Eingabefeld ein, in demprefix
sich alles befindet, was Sie für tmux festgelegt haben (ich verwende cntrl-a, damit das Feld angezeigt wird\001p
). Wenn Sie einen Fehler machen, werden Zeichen zum Löschen eingefügt, anstatt sie tatsächlich zu löschen. Drücken Sie also die Taste "Ein Zeichen löschen", um rückwärts zu springen, falls Sie etwas falsch machen.Sonderzeichen, die ich festgelegt habe, um das Leben einfacher zu machen:
Sie können auch cntrl-anything und shift-anything ändern. Denken Sie jedoch daran, dass dies Ihre $ EDITOR- oder andere Programme stören kann. Achten Sie also darauf, welche speziellen Funktionen möglicherweise unbrauchbar werden.
Beachten Sie auch, dass ich nicht herausfinden konnte, wie diese Funktionalität in iTerm2 dupliziert werden kann.
quelle
Vielleicht möchten Sie auch die native (aber sehr experimentelle) Integration in Betracht ziehen, die iTerm2 mit tmux bietet: http://code.google.com/p/iterm2/wiki/TmuxIntegration
Auf diese Weise teilt iTerm2 die Registerkarte für Sie, wenn Sie Cmd-D drücken, um den Bildschirm zu teilen. Dies ist großartig, da die Teilung nativ ist. Sie können also die Kante in der Mitte ziehen, um die Breite anzupassen, oder Sie können einen Bereich durch Klicken auswählen. Das Gleiche gilt für neue Registerkarten / Fenster (aber die Verknüpfungen unterscheiden sich geringfügig - sonst hätten Sie keine Möglichkeit, Nicht-tmux-Registerkarten hinzuzufügen).
Und wie bei tmux wird beim Trennen und erneuten Anbringen alles für Sie gespeichert.
Es gibt jedoch zwei Einschränkungen: * Dies ist eine sehr experimentelle Funktion und für mich sehr schuppig. * Sie müssen tmux selbst erstellen (mithilfe des Archivs irgendwo auf dem Link oben).
-Chris
quelle
cmd+D
befolgt , aber die iTerm2-Fenster geteilt, nicht die von tmux.tmux -CC
.Sie können sich auch diesen Blog-Beitrag ansehen, der sehr detaillierte Erklärungen zur Integration von tmux / iterm enthält: http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
quelle