Byobu(tmux)的使用与定制

周末时跟 @walkerxk 去了车库咖啡,这是来北京半年来首次去这个传说中以「创业」为主题的咖啡店。实际上去那纯属好奇,想看看是怎么样,不巧正碰上一次活动,人真是那个密密又麻麻。

好在人多并不影响我们交流技术,后来 @truant 也来了,三人交流了各种各样的话题,甚是爽快!

这次在车库咖啡我接触并学习了Tmux,真是一个了不起的东西,觉得有必要介绍一下,因为我后来发现,原来我曾经介绍过的「Byobu」,竟然已经是Tmux为默认后端了。

先贴张车库咖啡的图,周六的人真是多啊…大家在介绍四个App,个人觉得来自深圳的变魔术的那个App蛮有意思的。

Cheku Cafe

回归正题,在介绍Tmux之前,你必须得先了解Screen。简单的说,Screen是一种用于保持终端可持续会话、可以同时进行多个会话的一个工具。而Byobu呢,则是Ubuntu开发的,在Screen的基础上进行包装,使其更加易用的一个工具。

Tmux又是什么呢?它是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。由于我还在学习中,暂时还能深入讲解使用,据说它可以做到一条命令就启动起来,左侧是终端,右侧是Vim,下面来一个gdb ----总之它就是一个灵活的IDE,任仍你配置。

现在轮到介绍Byobu了,虽然我之前已经介绍过了。但是最新的Byobu(5.9),已经是基于Tmux作为后端了。也就是说,Byobu也是支持屏幕切分,并且通过 「byobu-tmux」这个命令行前端来接受各种与tmux一模一样的参数来控制它,可谓在保持Tmux兼容的情况下,造福了懒人。

尽管Byobu已经考虑到了各种情况,用户不需要太多配置了,但是为了符合自己的使用习惯,我还是做了最小的微调----把窗格的切换改成Vim式的。

Byobu包装过的Tmux将其配置文件放在了「~/.byoburc.tmux」下面,因此编辑这个文件,写如以下内容:

set-window-option -g mode-keys vi bind C-h select-pane -L bind c-j select-pane -D bind C-k select-pane -U bind C-l select-pane -R

然后,使用的时候就是这样:

  • 运行「byobu-tmux」进入Tmux后端的Byobu
  • 先按「Ctrl+A」,松开,再按「|」,竖切一个格子
  • 先按「Ctrl+A」,松开,再按「%」,横切一个格子

然后,怎么在这三个屏之间跳转呢?想想Vim的「hjkl」,这时只要按住「Ctrl」,再一齐按下「A」和「J」,就移到下面这个窗格去了。其他以此类推。

我试着做了一会,发现很习惯,因为不需要松开Ctrl键,因此我在窗格之间跳转非常迅速,而且这个键绑定也不会与其他键冲突(暂时没发现)。

效果图如下:

Byobu的细节做的非常好,比如你可以很明白的就看到当前哪个窗格是活跃的。

Byobu Tmux

Byobu(Tmux)真是非常好用的一个工具,尤其是卷动和复制粘贴等功能,真是方便。其他的功能,非常值得需要花时间去学习,我相信能带来效率的极大提升。

PS:本文仅在Ubuntu 12.04下测试通过。

<推广> 本站推荐使用使用 BandwagonHost 来搭建自己的虚拟主机和相关网络服务。

11 Comments

看来又有新东西学了!

Tmux什么地方比Screen好呢? 关注许久了, 但是一直没有足够的理由去迁移.

screen也可以分屏啊
“据说它可以做到...左侧是终端,右侧是Vim,下面来一个gdb——总之它就是一个灵活的IDE”
用screen+VIM就可以做到这些啊,screen和vim都可以分屏(横竖都行),组合很无敌啦

wliment

说到分屏Terminator不错。

Jeffrey4l

一直在用tmux, 比较常用的机会用SSH连接服务时, 网络不稳定,断掉后还能连接下,会话不变。

忍受不了 byobu 的速度,由于没啥服务器和分屏需求,就用 urxvt 了……

Arch的配置在 .config/byobu 里

查了一下,byobu 原来只是一堆 profile 文件和配置工具啊……

邱天

为什么我用byobu-tmux还是ctrl-a而不是ctrl-b的按键绑定呢?

我曾经也写过一篇关于 centos 的: https://v2mm.tech/topic/106
此外关于防火墙配置,我推荐 configserver, 是 iptables 的封装,很好用。感谢推荐Byobu,我去试试 :)

博主有兴趣加入 V2MM 的专栏吗?见:https://v2mm.tech/category/46/blog
同是独立开发者,希望能与你交个朋友 :)

river 回复 @river

这个评论发错了,不好意思,应该是发在这篇博客评论区的: https://imtx.me/archives/2375.html

Leave a Comment