Tmux配置与美化
本文介绍了我目前使用的Tmux配置。一来是目前的配置用着还算舒服,写此文安利一下;二来也记录一下键位映射,以做备忘。
Oh-My-Tmux
目前我用的配置是基于Oh-My-Tmux
项目改造的。在这个项目上我进行了一些配色的改变(原生的黑白红是在欣赏不起来),最终效果如下图1所示,环境为Windows Terminal + WSL2 + Tmux 3.0a
安装
配置文件的安装
这里是对oh-my-tmux的安装流程复述前置条件
Tmux
版本大于等于2.4。Tmux的版本可以通过tmux -V
命令查看。- 预装awk、perl、sed工具
$TERM
变量必须设置为xterm-256color
。这个变量是在~/.bashrc
中设置的,echo $TERM
可以检查。
安装配置
1
2
3
4$ cd
$ git clone https://github.com/Gwzlchn/dotConfig.git
$ ln -s -f ~/dotConfig/tmux/.tmux.conf
$ cp ~/dotConfig/tmux/.tmux.conf.local .
字体的安装
本配置文件中的一些符号图标的显示依赖Nerd Font
字体,所以需要在终端软件所在的系统中安装Nerd Font
字体。Nerd Font
并不是一种字体,而是在原有字体上增加了一些Unicode符号的一个字体补丁。你既可以选择手动为自己目前用的字体打上Nerd Font
补丁(参考使用nerd-font/font-patcher为字体添加字体图标),也可以在Nerd Font Download页面下载打好补丁后的字体。我用的是FiraCode NerdFont
,这个字体看起来比较纤细,同时带连字符效果。我目前用的终端是
Windows Terminal
,Windows安装字体比较简单,点开字体安装即可。之后需要将终端软件配置为刚刚安装的字体。打开Windows Terminal
的配置文件settings.json
,在profiles.defaults
字段下增加"fontFace": xxxx
这个属性。如下所示。1
2
3
4
5
6
7
8
9
10
11
12
13
14"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles.
// "colorScheme": "Dracula",
//"acrylicOpacity" : 0.4,
"useAcrylic" : true,
"fontSize":13,
"fontFace": "FiraCode Nerd Font",
"startingDirectory": ".",
"bellStyle":"none"
},
}如果完成了上述的安装流程,那么你在
Windows Terminal
中进入WSL2
环境后,输入tmux
应该就可以看到图1的效果了。
键位映射
Tmux另一个迷人之处在于你可以用纯键盘来控制终端窗口的增删查改、甚至是缩放与恢复(1.意味着极大概率会碰到Tmux快捷键与其他软件冲突的情况。2.意味着我经常记不住冷门的快捷键映射。3.意味着你可以套用VIM的键位映射,但这里我没有用,因为我不熟VIM)。
一些键位符号的约定
<prefix>
表示前缀键,需要同时按Ctrl + b
触发。按下之后状态栏会有提示,表示等待后续按键的输入(Oh-my-tmux效仿Screen,将Ctrl+a
也映射成了前缀键,但会和Qemu
冲突,故我这里取消了这个映射)<prefix> c
表示新建一个窗口,需要先同时按Ctrl + b
,再按c
键触发。<prefix> C-c
表示新建一个会话,需要先同时按Ctrl + b
,再同时按Ctrl - c
键触发。<CR>
表示回车
键位映射 | 动作 | 备注 |
---|---|---|
<prefix> e |
编辑~/.tmux.conf.local 配置文件 |
|
<prefix> r |
重新加载~/.tmux.conf.local 配置 |
|
<prefix> C-c |
新建一个Session | |
<prefix> c |
新建一个Window | |
<prefix> $ |
重命名当前Session | |
<prefix> , |
重命名当前Window | |
<prefix> % |
新建一个垂直方向的Panel | |
<prefix> _ (下划线) |
同上 | |
<prefix> “ |
新建一个水平方向的Panel | |
<prefix> - (减号) |
同上 | |
<prefix> w |
查看所有打开的Session和Windows | 可以通过j/k <CR> 来跳转 |
<prefix> + Up/Left/Down/Right |
更改一个Window内Panel大小 | 按方向键的时候,<prefix> 不要松开 |
<prefix> h/j/k/l |
在一个Window内切换到不同的Panel中 | 使用方向键亦可,按方向键的时候,<prefix> 需要松开 |
<prefix> < /<prefix> > |
交换两个Panel的位置 | |
<prefix> C-h /<prefix> C-l |
在一个Session内的不同Window中切换 | 默认的<prefix> n/p 切换方式已解绑 |
<prefix> + |
将当前Panel最大化成为一个Window,或者恢复一个Window为Panel | 这个是Oh-My-Tmux最有用的功能 |
<prefix> m |
Tmux鼠标模式开关 | 默认开 |
<prefix> <CR> /<prefix> [ |
进入Tmux 复制模式 | |
Copy Mode q |
退出复制模式 | 在复制模式下 |
Copy Mode C-Space |
开始复制 | 同上 |
Copy Mode C-w |
将选中内容复制到Tmux Buffer中 | 同上 |
<prefix> p /<prefix> ] |
将最新的Tmux Buffer中的内容粘贴到终端中 | |
<prefix> P |
选择任意Tmux Buffer中的内容粘贴到终端中 | |
<prefix> b |
查看目前所有的Tmux Buffer中的内容 |
美化Tmux
Oh-My-Tmux给了较大的美化空间,如图2所示。四个方框依次对应的是1.status left, 2.window status, 3.window current status, 4.status right。清楚了这个对应关系,再看~/.tmux.conf.local
中的内容就很清楚了。右侧状态栏比较好的一点是,当你使用的SSH登录到远程主机时,username和hostname也会随之改变。
配色方案我这里选用的是Nord Color Scheme
最后附上我目前用的状态栏配置。
1 |
|