英数字以外のプレフィックスを持つTmux


8

私はいくつかのUbuntuマシンにtmux 1.5をインストールしています。これは〜/ .tmux.confにあります:

unbind-key C-b
set-option -g prefix C-\

そのため、いくつかのRedHatマシンで(ルートではなく)sshにアクセスできます。tmux1.6をコンパイルして、ディレクトリにインストールしました。C- \をプレフィックスとして設定しようとすると、起動時に次のようになります。

 /home/user/.tmux.conf: 2: line continuation at end of file

明らかにファイルを正しく解析していません。テストとして、次のように変更します。

unbind-key C-b
set-option -g prefix C-'

そして私は得る:

 /home/user/.tmux.conf: 2: invalid or unknown command: set-option -g prefix C-'

そのため、まだ正しく解析されていません。

ただし、これは機能します。

unbind-key C-b
set-option -g prefix C-o

そのため、非英数字キーの問題のようです。

どんなアイデア>

回答:


11

tmuxの 1.6設定行の最後にバックスラッシュは行継続文字として機能します。いくつかの方法で、コマンド自体へのバックスラッシュを取得するように手配できます。

単に最後の文字ではないことを確認してください。スペースの後にスペースを入れるか、スペースとコメントを入れます。

set-option -g prefix C-\ # (not a line continuation!)

一重引用符で囲みます。

set-option -g prefix 'C-\'

二重引用符で囲みます(そして、二重引用符の中ではバックスラッシュが特別なので、エスケープします):

set-option -g prefix "C-\\"

あなたは、C-'単一引用符は、引用符で囲まれた文字列を始めていたので、(エラーメッセージがここにそれほど有用ではありません)失敗していました。

また、何のための標準的な制御文字やシーケンスが存在しないControl- 'ので、tmuxはは(訴えているだろうbad key: C-'あなたは二重の最初の解析段階を過ぎてそれを得るために、それを引用していたとしても)。非アルファベットの一握りしかない制御文字@[\]^_?


うん、うまくいきました!私はそれが新しいバージョンの機能だと思った。
MikeHoss

<プレフィックスに文字を割り当てるにはどうすればよいですか?トルコ語のキーボードを使用してset -g prefix 'C-<'いますが、悪いキーエラーが発生しています。
Mesut Tasci

@mesuutt:C- <は標準の制御文字ではありません(答えの最後の段落を参照)。1.8より前のtmuxのバージョンでは、まったくサポートされていません(「無効なキー」メッセージが表示されます)。1.8で始まる、tmuxははそれを認識しますが、唯一のxtermスタイルのmodifyOtherKeys配列(例えば経由しますESC [27;5;60~についてC- <お使いの端末エミュレータがまたはサポートしていない可能性があり、)。
クリスジョンセン

@ChrisJohnsen私はzshとtmux 1.8を使用しています。あなたの言っていることを正確に理解できません。プレフィックスをC- <に変更するには、.tmux.confに何を書き込む必要がありますか?何ESC [27;5;60~ですか?
Mesut Tasci

@mesuutt:tmux 1.8 set -g prefix 'C-<'を使用すると正常に実行できます(1.7以前のバージョンで表示される「無効なキー」メッセージは表示されません)。シェルはそれほど重要ではありません。このエスケープシーケンスはtmuxC- <として認識するため、C- <を押したときに端末はこれらの8バイトを送信する必要があります(tmuxは起動時に別のシーケンスを送信することでこの動作を要求しますが、すべての端末エミュレーターがサポートするわけではありません) 。tmuxの外部で実行した後、C- <と入力してみてください。シーケンスを取得できない場合、おそらく端末に必要なサポートがありません。printf '\e[>4;1m';cat
クリスジョンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.