web-dev-qa-db-ja.com

tmux接頭辞をOS X cmdキー(またはその他のバインディング)にバインドします。

私はOS XのiTerm2(またはこの場合はTerminal.app)に慣れています。しかし、tmux(または画面ですが、問題は両方のアプリに似ています)を使用するように移行したいと思います。

したがって、私の考えは、単一のiTermタブにtmuxセッションを開き、複数のタブで開くことです。移行を行うには、tmuxで構成する必要のある基本機能があります。cmd+ nを使用してタブ「n」を切り替えます(Firefox、Chrome、iTerm2自体など)。

しかし、Macキーボードでcmdキーをマッピングする方法が見つかりません。最初にcmdをプレフィックスキーとして実装しようとしましたが、成功しませんでした。設定してみました

set-option -g prefix M-a (hoping for Meta-a)

set-option -g prefix ^a (hoping for ^ to work)

しかし、何も機能しません。これは可能ですか?プレフィックスをcmdにバインドする必要は本当にありませんが、cmd + nでtmuxタブを変更できるようにしたいと思います。

ありがとうございました

21
rubenfonseca

キーストロークのシーケンスを呼び出したい(最初のCtrl-b、次にn0〜9の範囲)。

最善の策は、 Butler または Keyboard Maestro などのキーボードショートカットユーティリティを使用してこれを行うことです。


Butlerの使用:

+"スマートアイテム"キーストロークを選択し、hotkeyCmd-1。押す Ctrl-B、次に1Keystrokesの場合。ターミナル(またはiTerm)でのみ有効になるように構成します。他のアプリケーションが気に入らない可能性があることを警告しますが、すでに知っています。


Keyboard Maestroを使用:

ターミナル(またはiTerm)でのみ利用可能な新しいグループを左側に作成します。

Hot Key TriggerCmd-1)と2つのKeystrokesをアクションに追加します:Ctrl-Bおよび1


this topic -はCommandを使用していません。また、ターミナルを使用していても機能しません。


tmuxドキュメント から:

キーkeyをコマンドにバインドします。キーには、Ctrlキーの場合は「C-」または「」、Alt(メタ)キーの場合は「M-」をプレフィックスとして指定できます。 −rフラグは、このキーが繰り返されることを示します。repeat-timeオプションを参照してください。

3番目の修飾キーはサポートされていません。

8
Daniel Beck

ITerm2では、ターミナルに送信される16進コードにショートカットをマップできます。 iTerm2設定->キーに移動します。 [グローバルショートカットキー]で、+をクリックし、キャプチャされるcmd + 1のような目的のショートカットを入力します。次に、「16進コードを送信」を選択します。表示されるボックスに、tmuxに送信する16進コードをスペースで区切って入力します。 Ctrl-Bは0x02なので、「Ctrl-B 1」の場合は「0x02 0x31」と入力します。 16進コードの詳細については、こちらをご覧ください: http://www.nthelp.com/ascii.htm

Tmuxペイン間を移動するためにh、j、k、lでCmdをマッピングし、分割を作成するために%と "でCmdをマッピングしました。おそらく1つのコントロールキーでvim分割間を移動するのと同じようなことを行います。

20
sesotek

Terminal.appで特別なショートカットを作成できます。先日見つけたばかりですが、ライオン以前に可能だったのかもしれません。

[設定]> [設定]に移動し、[キーボード]タブをクリックします。次に、ボックスの下にあるプラスアイコンをクリックして、新しいキーボードショートカットを追加する必要があります。次に、「文字列をシェルに送信する」というキーコンボを設定します。

例:M-LeftArrowをprefix-p(前のウィンドウ)にマップするように設定するとします。

Key: Left Arrow 
Modifier: Option 
Action: send string to Shell

次に、入力ボックスにprefix-pと入力します。ここで、prefixはtmuxに設定したものです(ボックスに\001pが表示されるようにcntrl-aを使用しています)。間違えた場合は、実際に文字を削除するのではなく、削除文字が挿入されるので注意してください。

生活を楽にするために設定した特殊文字:

M-Left  > Previous Window
M-Right > Next Window
M-Up    > Enter scrolling mode
M-Down  > Next Pane

Cntrl-anythingやshift-anythingを変更することもできますが、これらは$ EDITORまたは他のプログラムに干渉する可能性があるので、どの特別な関数が役に立たなくなる可能性があるかに注意してください。

また、iTerm2でこの機能を複製する方法を理解できなかったことにも注意してください。

2
scicalculator

また、iTerm2がtmuxと提供するネイティブ(ただし非常に実験的な)統合を検討することもできます。 http://code.google.com/p/iterm2/wiki/TmuxIntegration

このように、Cmd-Dを押して画面を分割すると、iTerm2がタブを分割します。これはすばらしいことです。分割はネイティブなので、中央のエッジをドラッグして幅を再調整したり、クリックしてペインを選択したりできます。新しいタブ/ウィンドウ用のディット(ただし、ショートカットは少し異なります。それ以外の場合、非tmuxタブを追加する方法はありません)。

Tmuxのように、デタッチして再アタッチすると、すべてが保存されます。

ただし、2つの注意点があります。*これは非常に実験的な機能であり、私には非常に不安定です。 * tmuxを自分でビルドする必要があります(上のリンクのどこかにあるアーカイブを使用)。

-クリス

1
Chris

Tmux/iterm統合に関する非常に詳細な説明があるこのブログ投稿もご覧ください。 http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/

0
Jérémie