让tmux更高效!
tpm tmux plugins管理工具
一、安装
注意tmux版本要大于等于1.9。
1.1、简介
tpm ( Tmux Plugin Manager)是 tmux 的插件管理工具。tmux 之於 tpm 就如同是 nodejs 之於 npm。是一個在 github 上面有 6100 顆星星的開源專案。
1.2、安装
1.2.1、github下载插件管理器tpm
1 | mkdir -p ~/.tmux/plugins/tpm |
1.2.2、编辑配置文件
接著修改 ~/.tmux.conf
没有的话自己创建该文件。
将下面内容复制到~/.tmux.conf
1 | List of plugins |
在tmux运行的时候,找到任意窗口输入下面这个完成安装管理器:
1 | tmux source ~/.tmux.conf |
1.3、使用 tpm 安裝 tmux 插件
安裝 tpm 套件可能跟你想的不太一樣,直接修改 ~/.tmux.conf
檔案的內容,並且重啟。例如你想要安裝 tmux-copycat。
1 | vim ~/.tmux.conf |
加入這一行
1 | set -g @plugin 'tmux-plugins/tmux-copycat' |
接著,重開 tmux session 或是在 tmux 中輸入 prefix (ctrl+b) + I
即可。(I
= Shift + i
)
二、插件安装并使用
2.1 tmux-resurrect
2.1.1 tmux存在的问题
它虽然好用,但是缺点是关机的话session就全都消失了。要解决这点,需要安装单独的插件。
这个时候你就需要Tmux-Resurrect
插件来了,地址在这。
插件说明里很清楚的写了,tmux一旦关机,就会失去一切的设置。所以还必须用插件来解决。
2.1.2 安装
1 | 1、编辑配置文件 |
2.1.3 使用
1 | # 任意tmux session |
2.1.4 结语
现在你可以随时使用 prefix + Ctrl-s
保存,使用 prefix + Ctrl-r
恢复。保存时,Tmux 状态栏会显示 “Saving …” 字样 , 完毕后会提示 Tmux 环境已保存 。值得注意的是,恢复后,原窗口中的进程会被杀掉。如果你是重启后恢复,那自然没什么问题,但是平时试验的时候可要留心有没有重要的任务正在运行中。
Tmux Resurrect 会将 Tmux 会话的详细信息以文本文件形式保存到 ~/.tmux/resurrect
目录 。
值得注意的是,恢复后,原窗口中的进程会被杀掉。默认情况下,仅还原保守的程序列表vi vim nvim emacs man less more tail top htop irssi weechat mutt
我们可能还需要保存当前每个窗格运行的程序,保证恢复的时候程序能够再次重启。类似 vim
, less
, man
这些程序 tmux-resurrect 会自动恢复,其他的例如redis,mysql等则需要配置:
1 | 告诉resurrect恢复哪些程序 |
2.2 tmux Continuum
2.2.1 tmux-resurrect存在的问题
Tmux Resurrect 工作很好,只是备份和还原都是手动完成。而 Tmux Continuum 更进一步,它将 Tmux 会话的保存及还原自动化,定时备份,然后在 Tmux 启动时还原。
2.2.2 安装
1 | set -g @plugin 'tmux-plugins/tmux-continuum' |
2.2.3 使用
Tmux Continuum默认每隔15mins备份一次,可以设置其他的:
1 | set -g @continuum-save-interval '1440' |
关闭自动备份,只需设置时间间隔为 0
即可:
1 | set -g @continuum-save-interval '0' |
想要在tmux启动时就恢复最后一次保存的会话环境,需增加如下配置:
1 | set -g @continuum-restore 'on' # 启用自动恢复 |
如果不想要启动时自动恢复的功能了,直接移除上面这行就行。想要绝对确定自动恢复不会发生,就在用户根目录下创建一个tmux_no_auto_restore
空文件(创建命令:touch ~/tmux_no_auto_restore
),该文件存在时,自动恢复将不触发。
对于tmux高级用户(可能就是你)而言,同时运行多个tmux服务器也是有可能的。你可能并不希望后面启用的几个tmux服务器自动恢复或者自动保存会话。因此Tmux Continuum会优先在第一个启用的tmux服务器中生效,随后启用的tmux服务器不再享受自动恢复或自动保存会话的待遇。
实际上,不管Tmux Continuum功能有没有启用,或者多久保存一次,我们都有办法从状态栏知晓。Tmux Continuum提供了一个查看运行状态的插值#{continuum_status}
,它支持status-right
和 status-left
两种状态栏设置,如下所示:
1 | set -g status-right 'Continuum status: #{continuum_status}' |
tmux运行时,#{continuum_status}
将显示保存的时间间隔(单位为分钟),此时状态栏会显示:
1 | Continuum status: 1440 |
如果其自动保存功能关闭了,那么状态栏会显示:
1 | Continuum status: off |
2.3 tmux日志
tmux日志可以记录我们想要保存屏幕上的部分内容
- 在当前窗格中记录所有输出:开始记录后,所有键入的内容和所有输出将保存到文件中。方便跟踪您的工作。
- 当前窗格“屏幕捕获”当前窗格中。所有可见的文本都保存到文件中。就像屏幕截图一样,但文字化。
- 保存当前窗格的完整历史记录:可以将自创建当前窗格以来输入的所有内容和所有输出保存到文件中。
- 使用以下命令清除窗格历史记录
prefix + alt + c
2.3.1 安装
1 | set -g @plugin 'tmux-plugins/tmux-logging' |
2.3.4 使用
记录
在当前窗格中切换(开始/停止)日志记录。
按键绑定:
prefix + shift + p
文件名格式:
tmux-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log
文件路径:($HOME用户主目录)
- 示例文件:
~/tmux-my-session-0-1-20140527T165614.log
- 示例文件:
截取屏幕日志:
在当前窗格中保存可见文本。等效于“文本截图”。
- 按键绑定:
prefix + alt + p
- 文件名格式:
tmux-screen-capture-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log
- 文件路径:($HOME 用户主目录)
- 示例文件:
tmux-screen-capture-my-session-0-1-20140527T165614.log
- 示例文件:
保存完整的历史记录
将完整的窗格历史记录保存到文件。如果您回想起来很方便,则需要记录/保存所有工作。
- 按键绑定:
prefix + alt + shift + p
- 文件名格式:
tmux-history-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log
- 文件路径:($HOME用户主目录)
- 示例文件:
tmux-history-my-session-0-1-20140527T165614.log
- 示例文件:
注意:此功能取决于history-limit
- 值Tmux在回滚缓冲区中保留的行数。Tmux保留的内容也只会保存到文件中。
set -g history-limit 50000
在.tmux.conf中使用,对于现代计算机,可以将此选项设置为高数字。
清除窗格历史记录
按键绑定: prefix + alt + c
这只是一个便捷键绑定。
2.3.5 注意
如果prefix+Ctrl+p
失效可能是快捷键冲突。Ctrl+p
–> P
1 | cd /home/wangguan/.tmux/plugins/tmux-logging/scripts |
修改 variables.sh内容把p
改成其它的快捷键例如V
,B
,N
,之后prefix+I
即可
2.4 Tmux copycat
是否想过在command面板中搜索一些内容呢?Tmux copycat完全可以满足:支持正则搜索。
2.4.1 安装
1 | set -g @plugin 'tmux-plugins/tmux-copycat' |
2.4.2 使用
搜索
prefix + /
正则表达式搜索q
退出
Example search entries:
foo
搜索字符串foo
[0-9]+
搜索数字
搜索不区分大小写。
“Copycat mode” bindings
These are enabled when you search with copycat:
n
-下一个匹配内容N
-上一个匹配内容
To copy a highlighted match:
Enter
- if you’re using Tmuxvi
modectrl-w
oralt-w
- if you’re using Tmuxemacs
mode
参考
1 | https://qiaoanran.com/article/54c9ba07+Tmux_%E7%AA%97%E5%8F%A3%E6%8C%81%E4%B9%85%E5%8C%96%E6%8F%92%E4%BB%B6_tmux-resurrect |
- 本文作者: 初心
- 本文链接: http://funzzz.fun/2020/12/30/tmux---plugins/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!