打造酷炫终端(二)——Tmux 配置
Tmux 的安装与使用
Tmux 主要有三个功能(按重要性排序):
- 保护现场:只要在 Tmux 中执行命令或者编译某段代码,无论是怎样的情况导致终端关闭,重新登录连接 Tmux 后,任务依然继续或者已经完成。无论是断电或断网,只要远程服务器没有关闭,tmux 中的任务依然运行。 因此,保护现场是 Tmux 最为重要的一个特性,它在 SSH 连接远程服务器时,为用户提供了无比重要的作用。
- 极简分屏:传统的终端软件分屏仅仅是单纯地多开软件,不会进入此时的服务器,也不会进入分屏时的目录。 Tmux 的分屏仅仅需要简单的快捷键就能克服上面的所有缺点。
- 会话共享:用于教学。两台不同的计算机连接到同一个会话, Tmux 会把服务器的操作展示出来。
对我来说,第一个功能最重要,第二个功能 VScode 里都能实现
安装 tmux
使用 tmux
推荐 阮一峰的Tmux教程 和 Tmux快捷键速查表
新手需要弄清楚 session
, window
和 pane
三个概念,
窗口拆分
切换窗口
两个终端产生了神奇的同步效果
使用 oh-my-tmux 配置
Oh-my-Tmux 是 Tmux 的配置增强补丁和外观美化的补丁。提供了更人性化的操作,传送门
按照上面的教程配置后使用下面的命令让它生效:
tmux source-file ~/.tmux.conf
默认效果如下,
是不是觉得与广告图片不符,为什么下面不是箭头形状呢?
找了好久,原来这个东西叫做 Powerline,Nerd Fonts 可以支持
Powerline 的仓库:https://github.com/ryanoasis/powerline-extra-symbols
开启方法如下,我根据上面仓库的 Unicode 代码替换了下 Powerline 的样式
效果如下:
如果发现 tmux 下不支持 256 色,auto-suggestions
插件看起来就会出问题,可以采用下面的方法,传送门
配置修改
为了方便,可以增添如下配置:
# 新建窗口用父亲的工作目录
bind-key c new-window -c "#{pane_current_path}"
bind-key % split-window -h -c "#{pane_current_path}"
bind-key '"' split-window -c "#{pane_current_path}"
TPM 插件管理
oh my tmux
自动集成了 TPM,可以方便的安装 tmux 插件,但使用方法和官方 TPM 插件略有不同
添加重启恢复插件,如果没有这插件,我 WSL2 的 tmux 拿来有何用?
# 重启恢复插件
set -g @plugin 'tmux-plugins/tmux-resurrect'
效果
炫酷的效果可以美化 3 层:
- 自己用的终端软件可以美化
-
shell 可以能美化
-
tmux 可以美化
此外 nvim 还可以美化😇
Reference
https://github.com/gpakosz/.tmux
https://www.ruanyifeng.com/blog/2019/10/tmux.html
https://gist.github.com/ryerh/14b7c24dfd623ef8edc7
https://github.com/ryanoasis/powerline-extra-symbols
https://unix.stackexchange.com/questions/1045/getting-256-colors-to-work-in-tmux
https://glitchbone.github.io/vscode-base16-term/#/ (VScode 终端主题颜色)
等有时间和需求的时候再来开第三章,再来折腾和配置 nvim 吧
Comments | NOTHING