tmux外貌篇:让你的tmux更好看

今天发现tmux的status竟然可以展示CPU的负载,然后查了一下tmux手册,发现tmux还有这么多好玩的东西我从来都没接触过。这篇文章讲一下tmux的options(由于是外貌篇,所以会重点讲有关外观的部分)。本文“授之以渔”,会告诉你怎么设置,而不是提供一个conf。

我的tmux外貌

本文所有命令皆为tmux命令,需要加上“tmux”前缀来运行。例如提到set-option,运行命令应该是tmux set-option,或者在命令模式运行(按下prefix+:

Options可以控制tmux的行为和外观,tmux的options分为Sever options, Session options, Window options三种。设置option的命令可以说不少(很乱),比如设置Window option就可以用 setw, set -w, set-window-option。作为一个Python程序员,简直不能忍受。建议只使用最后一种风格,因为“解决问题最直接的方法应该有一种,最好只有一种”,最后一种风格简洁明了,写到.tmux.conf文件中的话,即使没怎么用过tmux的人也可以看明白。况且这些命令很少被直接执行,一般是写在conf文件中的。

  • set-option -s 设置sever option
  • set-option 设置session option
  • set-window-option 设置window option
  • set-option -g 设置全局option

tmux的外貌主要提现在status bar上,这里可以配置你想在status bar看到的东西,以及格式等。status bar主要有5个东西组成:

  1. window 列表
  2. 左侧显示区
  3. 右侧显示区 (1-3其实根据配置决定,比如右侧也可以不显示)
  4. message显示条(显示message的时候,会占据整个status bar)
  5. command输入的时候(这时也会占据整个status bar)

Message Style

上面这些东西显示的样式都可以通过style来指定。style是由逗号分割的一个list组成。fg设置前景style,bg设置背景style。

颜色可以使用三种方式来指定:

  1. black, red, green, yellow, blue, magenta, cyan, white
  2. 从colour0到colour255之间(注意不要打成color),查看所有的颜色
  3. 用css风格的那种 “#ffffff”

除了颜色之外还支持以下属性(前面加上no表示关掉,比如noblink):

  1. bright(blob)
  2. dim
  3. underscore
  4. blink
  5. reverse
  6. hidden
  7. italics
  8. strikethrough

举个例子,下面的命令:

将会把命令模式的style设置为(其实是有闪烁效果的):

另外一般中间的status显示的是window的list,所以window的style也有必要设置。需要设置的style有以下几种:

  • widnow-status-style window默认的style
  • window-status-current-style 当前window的style
  • window-status-bell-style 有bell的window的style

tmux的bell就是如果窗口有活动,窗口就会变成bell的style,来提醒你这个窗口有进程活动已经结束了。打开bell还需要下面的设置:

除此之外,上面的三个属性还可以设置format(但是我觉得用default的format就可以),默认的格式是#I:#W#F,其中I是窗口序号,W是窗口名字,F是窗口标志(例如当前窗口标志是*,最后打开的窗口标志是-,Zoom的窗口标志是Z)最后我的窗口样式如下。

Status Style

对于status(左侧status,右侧status,中间),可以使用FORMAT来指定。FORMAT是一个字符串,可以指定显示样式。其中#{}包裹的部分会被替换。比如set status-left "#{session_name}"将在左侧状态栏显示目前session的名字。支持alias缩写,这条命令也可以写成set status-left "#S"。所有可用的变量见这里

除了可以使用tmux的内部变量之外,还可以使用shell命令结果,#()会解释成shell命令,例如set status-left "#(uptime)"将在左侧状态栏显示uptime命令的输出。tmux并不在执行括号内的命令的时候阻塞住。而是会展示最近一次的执行结果。刷新频率由status-interval来控制。

上面介绍的style也可以使用,方法是将style描述#[]中,会控制之后的FORMAT或者shell命令的格式。

举例,下面的这样设置将status-right的显示修改为如下:

我的.tmux.conf: https://github.com/laixintao/myrc

最后推荐一些tmux插件(外貌向):

  1. tmux插件管理:https://github.com/tmux-plugins/tpm (Plugin集合
  2. 显示cpu load的:https://github.com/thewtex/tmux-mem-cpu-load


tmux外貌篇:让你的tmux更好看”已经有3条评论

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注