LoginSignup
87
77

More than 5 years have passed since last update.

tmux で Prefix key が押されているかどうかを表示する

Last updated at Posted at 2015-10-07

tmux でペイン分割とかウィンドウ作成するときとかにキーバインドとして使う Prefix key (C-b とか C-t とか設定されてる) ですが、誤動作を防ぐためにいま Prefix key が押されているのかどうなのか視覚的に確認したいことがあります。

以下のように .tmux.conf を書くことで、Prefix key が押された時に Status line の色を下動画のように反転させられます。

set-option -g status-left '#[fg=cyan,bg=#303030]#{?client_prefix,#[reverse],} #H[#S] #[default]'

prefix-key.gif

(Prefix key は C-t に設定)

重要なのはこれ

#{?client_prefix,#[reverse],}

.tmux.conf では ?<condition>,<true action>,<false action> の形で三項演算子をかけます。で、client_prefix は Prefix key が押されていたら 1 (true) になるというわけです。
今回は色を変えただけですが、押されている / いないときだけ何かしら文字を表示することももちろん可能です。

注意点があって、例えば Prefix key が押された時だけ黄色背景黒文字 (fg=black, bg=yellow) にしようとして

#{?client_prefix,#[fg=black,bg=yellow],}

と愚直に書くと

prefix-key-bug.gif

のように表示がバグります。#[fg=black,bg=yellow] 内のコンマが三項演算子2つめのコンマと解釈されているようです。

こうしたいときは、#[] を分割すればよいです。

#{?client_prefix,#[fg=black]#[bg=yellow],}

prefix-key-great.gif

REF

87
77
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
87
77