tmux中使用Ctrl+B滚动时会暂停应用?如何实现不暂停应用的滚动操作
tmux中使用Ctrl+B滚动时会暂停应用?如何实现不暂停应用的滚动操作
嗨,我明白你的困扰——每次用tmux的默认滚动方式时,总感觉程序好像“暂停”了,其实这只是tmux的默认机制在搞鬼,你的程序压根没停!
先给你解释下原因:当你按Ctrl+B [进入复制模式时,tmux会给当前的缓冲区拍个“快照”,之后程序的新输出会被暂时存在后台,不会显示在这个快照视图里,等你按q退出复制模式才能看到新内容。这种设计是为了让你能稳定地选中复制内容,不会被程序实时输出打乱操作,但确实会给人一种“程序暂停”的错觉。
接下来给你几个实用的解决方法,按需选就行:
开启实时复制模式
先按Ctrl+B [进入普通复制模式,然后按下Ctrl+C,这时候就切换成实时模式啦!程序的新输出会自动追加到缓冲区底部,你可以一边滚动翻看历史内容,一边看到新的输出实时进来。要是滚动到顶部后被新内容顶下去了,用方向键重新定位就行。增大缓冲区容量,存更多历史
默认tmux的缓冲区行数不多,可能你刚滚动就只能看到最近的内容。可以修改tmux配置文件(~/.tmux.conf)来扩容:set -g history-limit 10000 # 这里设为10000行,你可以根据自己的需求调整数字保存文件后,在tmux里按
Ctrl+B :,输入source ~/.tmux.conf回车就能生效。这样缓冲区能存更多历史,就算程序一直在输出,你也能轻松翻找更早的内容,退出复制模式也不会丢失太多记录。分窗隔离(最直观的方式)
要是觉得复制模式还是不够顺手,直接把窗口分成两个面板就好:- 按
Ctrl+B %垂直分窗,或者Ctrl+B "水平分窗 - 让你的程序在其中一个面板持续运行输出,另一个面板里你可以自由进入复制模式翻看历史,甚至用
tmux capture-pane -S -100这样的命令直接调出最近100行内容(数字可以随便改)。这样程序运行和历史查看完全互不干扰,体验超顺畅。
- 按
备注:内容来源于stack exchange,提问作者dunno
相关产品推荐
相关产品推荐

