一篇很不错的 tmux 教程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
56.4D
450.71D
V2EX    tmux

一篇很不错的 tmux 教程

  •  
  •   Livid
    PRO
    2015-06-28 16:47:30 +08:00 via iPhone 36707 次点击
    这是一个创建于 3758 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言    2016-02-16 09:29:37 +08:00
    补充一个最近发现的快捷键列表:

    59 条回复    2016-02-16 10:32:08 +08:00
    Tiande
        1
    Tiande  
    PRO
       2015-06-28 16:53:49 +08:00 via iPhone
    收藏
    h4lt
        2
    h4lt  
       2015-06-28 16:54:12 +08:00
    多谢分享。最近正好在学tmux
    extreme
        3
    extreme  
       2015-06-28 17:31:54 +08:00
    "If you have not already mapped the *ctrl* key to the *caps-lock* key and vice-versa I suggest you do it."
    应该理解成他建议我们把ctrl映射为大写按键抑或是不建议?
    extreme
        4
    extreme  
       2015-06-28 17:33:15 +08:00
    好像是建议这样做。
    ShiehShieh
        5
    ShiehShieh  
       2015-06-28 17:39:30 +08:00
    啊哈,tmux的话,我好像就用来分屏还有detach程序以外没有做别的事了。; )
    Livid
        6
    Livid  
    MOD
    OP
    PRO
       2015-06-28 17:45:28 +08:00   1
    @extreme 用 CAPS LOCK 替代 Ctrl,并且改成 C-a,这样更容易按。而且 CAPS LOCK 的使用频率确实太低了。
    Tiande
        7
    Tiande  
    PRO
       2015-06-28 17:47:47 +08:00
    @extreme 经典的 unix 配列。 caps lock 就算微软的程序员也很少用到吧。
    yylzcom
        8
    yylzcom  
       2015-06-28 17:50:55 +08:00
    我的sun type6 usb键盘就是 Caps Lokc 和 Ctrl 位置互换,不用设置……左边还有两排Copy Cut等功能键,ESC在~的位置,~在右上角Backspace的位置
    extreme
        9
    extreme  
       2015-06-28 17:52:34 +08:00
    @dtdnqsb 没怎么用过Unix,先熟悉Linux再用了一下FreeBSD。
    Septembers
        10
    Septembers  
       2015-06-28 17:58:53 +08:00
    @extreme 基本上BSD系统的命令的GUN版本的实现功能都要强一些
    extreme
        11
    extreme  
       2015-06-28 18:01:49 +08:00
    @Septembers “的”有点多,不知道我有没有理解错:
    在BSD系统上的程序,一部分在GUN中也有,但是GUN中的功能比BSD的要强大。
    bearzk
        12
    bearzk  
       2015-06-28 18:06:10 +08:00
    https://github.com/square/maximum-awesome

    安装这个吧 一次让vim和tmux配置到位!
    extreme
        14
    extreme  
       2015-06-28 18:17:18 +08:00
    @Septembers 为什么那个域名那么不好看,linux那个……
    wolfan
        15
    wolfan  
       2015-06-28 18:36:44 +08:00
    最近Tmux好像很火是怎么回事呢?
    zhuang
        16
    zhuang  
       2015-06-28 19:12:00 +08:00   2
    我建议在 mac 环境中用 iTerm2 集成的方式使用 Tmux。(用 tmux -CC 调用)



    iTerm2 解决了单独使用 Tmux 的几个不便:

    Tmux 窗口调整只能用鼠标完成,iTerm2 支持快捷键;

    Tmux 远程 session 需要多次 ssh 来增加窗口,iTerm2 将其自动化了;

    Tmux 之内某些快捷键不便使用,如 bash 历史,emacs-keybind 等等,iTerm2 自身快捷键是 gui 的 cmd 修饰,而不是 terminal 的 ctrl 修饰。





    PS

    如果你想用 Tmux 的方式使用 gui 程序,可以考虑 Amethyst - A tiling window manager for OS X
    http://ianyh.com/amethyst/
    rming
        17
    rming  
       2015-06-28 19:26:46 +08:00
    @zhuang

    可以设置快捷键的

    # resize panes using PREFIX H, J, K, L
    bind H resize-pane -L 5
    bind J resize-pane -D 5
    bind K resize-pane -U 5
    bind L resize-pane -R 5

    # resize panes
    bind C-left resize-pane -L 5
    bind C-down resize-pane -D 5
    bind C-up resize-pane -U 5
    bind C-right resize-pane -R 5
    thinker3
        18
    thinker3  
       2015-06-28 20:44:02 +08:00
    @zhuang 我用的iterm2, 装过zsh,用不习惯,还是用bash, 怎么感觉tmux总是去读zsh的配置文件啊
    zhuang
        19
    zhuang  
       2015-06-28 21:49:36 +08:00
    @rming 多谢指点


    @thinker3

    tmux.conf 找 default-shell,没有的话 set-option -g default-shell $SHELL

    有可能 zsh 导致环境变量 $SHELL 出错,也顺便看下
    lululau
        20
    lululau  
       2015-06-28 22:17:36 +08:00
    @zhuang @rming 不知道现在 iTerm2 现在是否支持pan 和 tmux 的 maximize pane 联动了
    zhuang
        21
    zhuang  
       2015-06-28 22:37:16 +08:00
    @lululau 最近刚刚修复了,以前一直不行
    songyuwen
        22
    songyuwen  
       2015-06-28 23:15:20 +08:00
    从`tmux`转到`screen`的+1,`screen`除了没有`tmux`的**split screen**之外,其他一切都很棒,也不需要另外在mac上安装`tmux`了。
    sinxccc
        23
    sinxccc  
       2015-06-28 23:34:59 +08:00
    @songyuwen

    tmux 优点:多个 session 在一个 server 里面,切换 session 的时候不用断开再重连;开新 window 的时候可以继承当前的 PWD,screen 也可以但是比较 tricky

    screen 优点:基本每个机器上都有;支持多种编码;可以连串口…

    我倒是很少用 tmux/screen 或者终端的分屏,一般都去 Emacs 下面。
    wogong
        24
    wogong  
       2015-06-28 23:36:23 +08:00   1
    推荐这本书: tmux: Productive Mouse-Free Development
    TankyWoo
        25
    TankyWoo  
       2015-06-28 23:40:20 +08:00   1
    oott123
        26
    oott123  
       2015-06-29 00:12:48 +08:00 via Android
    然而我用 byobu
    gerorim
        27
    gerorim  
       2015-06-29 01:14:26 +08:00 via Android   1
    @extreme

    "If you have not already mapped the *ctrl* key to the *caps-lock* key and vice-versa I suggest you do it."

    如果你未 *控制* 映射 *大定* 且 *大定* 映射 *控制*(英文原文中的「反之亦然),那我建你做。

    是正的句,此句也可以表:交 *控制* *大定* 的映射。

    以上。
    catface
        28
    catface  
       2015-06-29 01:20:18 +08:00
    大家都在什么场景下使用tmux呢
    realpg
        29
    realpg  
    PRO
       2015-06-29 02:09:31 +08:00
    感觉还是不习惯这个……
    simonday
        30
    simonday  
       2015-06-29 02:18:20 +08:00
    hedaors
        31
    hedaors  
       2015-06-29 02:51:15 +08:00
    @catface 在办公室的工作站上开 tmux, 在 tmux 里打开若干窗口,连上不同的 server, 跑不同的计算程序,在不同的窗口里随时看运行结果。

    在办公室以外,连上工作站,tmux a, 可以保持工作状态不变。
    MetroWind
        32
    MetroWind  
       2015-06-29 04:01:51 +08:00
    前几天某远程机器重装系统,Tmux 暂时编译不了,只好用 Screen. 发现 Screen 唯一的槽点是不能在 session 之内切换 session, 必须得先 detach…
    sinxccc
        33
    sinxccc  
       2015-06-29 05:32:56 +08:00
    @catface 我的使用场景里每个 pane 对应一个 task,比如编辑,编译,调试,看 log;每个 session 对应一类场景,比如每个工作的 branch 一个 session,irc 一个 session…

    所以我虽然很少用 tmux 的高级功能,连分屏都少,但是光 session 切换这个就让我回不去 screen 了。

    对应 GUI 窗口管理器的情况差不多就是 pane 类似窗口,session 类似一个虚拟桌面或者 desktop。
    linux40
        34
    linux40  
       2015-06-29 07:51:52 +08:00 via Android
    最开始在linux中国知道的,准备尝试。
    acgeo
        35
    acgeo  
       2015-06-29 09:10:53 +08:00
    能说句脏话吗?


    法克.......................................天天整这么多复杂玩意儿!!


    一个terminator搞定的师倩~~~~~~~~~~

    非得折腾!!
    acgeo
        36
    acgeo  
       2015-06-29 09:13:06 +08:00
    leeyiw
        37
    leeyiw  
       2015-06-29 09:36:13 +08:00
    谢谢分享
    pythonee
        38
    pythonee  
       2015-06-29 10:04:06 +08:00
    @acgeo cool
    cattyhouse
        39
    cattyhouse  
       2015-06-29 10:09:10 +08:00 via iPhone
    @acgeo tmux不是分屏那么简单。
    wanjun
        40
    wanjun  
       2015-06-29 10:34:55 +08:00
    这两天刚换到ubuntu下,正准备用这个,3Q
    oska874
        41
    oska874  
       2015-06-29 10:35:44 +08:00
    有谁遇到过打开了tmux就不能使用数字小键盘的问题?
    acgeo
        42
    acgeo  
       2015-06-29 11:24:42 +08:00
    @cattyhouse 难道还有什么其他功能吗?
    ShiehShieh
        43
    ShiehShieh  
       2015-06-29 13:47:42 +08:00
    @acgeo 你可以去查一查tmux的attach,detach。
    extreme
        44
    extreme  
       2015-06-29 14:15:11 +08:00
    @gerorim 感谢!
    xiaotianhu
        45
    xiaotianhu  
       2015-06-29 14:40:55 +08:00
    @rming 活捉了
    bottleimp
        46
    bottleimp  
       2015-06-29 15:14:20 +08:00
    @zhuang Tmux 远程 session 需要多次 ssh 来增加窗口,iTerm2 将其自动化了;

    这个怎么理解, 我现在用 iterm2 带的集成方法, tmux -CC, 每次合盖再打开, 窗口内连的 ssh 还是断了得重新连过. 如果想服务器上保留 session, 得在服务器上开 tmux, 这个怎么跟 iterm2 集成?
    zhuang
        47
    zhuang  
       2015-06-29 16:34:53 +08:00   1
    @bottleimp

    我表达得不够清楚,本地 tmux 进程,连接到远程主机,断开重连的确是无法避免的。

    这种情况本地 tmux 进程开 pane 连接远程主机,需要每开一个新的就 ssh 一次,iTerm2 针对这个情况可以方便一些。



    你需要的集成功能:

    本地连接远程,本地只需要 attach 即可,参考 tmux -CC attach 命令。断开直接用 detach,相当于远程的 tmux 一直保留,只是和本地断开连接。

    针对断开重连的问题,用 mosh 代替 ssh。
    https://mosh.mit.edu/

    要做的就是在 iTerm2 中执行 mosh <remote host> -- tmux attach,iTerm2 会把 tmux 的功能接管过来,不需要你执行命令了。同时 mosh 会接管 ssh 的功能,提供无缝断开重连。
    cattyhouse
        48
    cattyhouse  
       2015-06-29 17:52:32 +08:00 via iPhone
    @zhuang 我一般都是 ssh user@server "tmux a || tmux new" 这样远程永远不断,本地无需装tmux,只需要远程装就可以了。
    mintist
        49
    mintist  
       2015-06-29 20:13:09 +08:00
    在tmux下不能用`subl`直接打开文件或者文件夹是硬伤啊,有谁晓得如何破
    openroc
        50
    openroc  
       2015-06-29 23:24:15 +08:00
    推荐一下,tmuxp. :)
    openroc
        51
    openroc  
       2015-06-29 23:24:45 +08:00
    wind3110991
        52
    wind3110991  
       2015-06-30 01:16:24 +08:00
    个人感觉只有用vim+tmux的时候才感觉有些爽- -,这俩绝对真爱
    CuminLo
        53
    CuminLo  
       2015-06-30 09:38:43 +08:00
    byobu + 1
    opensu
        54
    opensu  
       2015-06-30 12:00:05 +08:00
    收藏,好好学习下!
    liul85
        55
    liul85  
       2015-06-30 14:00:41 +08:00
    有人用Linux自带的screen么?
    tianchaijz
        56
    tianchaijz  
       2015-06-30 22:50:37 +08:00
    自荐一下自己的 Vim 和 tmux 配置:
    [Vim]https://github.com/tianchaijz/dot-vimrc
    [tmux]https://github.com/tianchaijz/dot-files/tree/master/tmux

    终端里随处 REPL
    SimpKae
        57
    SimpKae  
       2015-12-19 16:47:25 +08:00
    我只想知道片上 iTerm2 用的是什配色?
    SharkIng
        58
    SharkIng  
       2016-01-31 04:46:31 +08:00
    https://gist.github.com/MohamedAlaa/2961058 这个 Cheatsheet 也很不错
    peizh2006
        59
    peizh2006  
       2016-02-16 10:32:08 +08:00
    byobu + 1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3534 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:11 PVG 08:11 LAX 17:11 JFK 20:11
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86