V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  tmux

一篇很不错的 tmux 教程

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

    59 条回复    2016-02-16 10:32:08 +08:00
    Tiande
        1
    Tiande  
       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
       2015-06-28 17:45:28 +08:00   ❤️ 1
    @extreme 用 CAPS LOCK 替代 Ctrl,并且改成 C-a,这样更容易按。而且 CAPS LOCK 的使用频率确实太低了。
    Tiande
        7
    Tiande  
       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  
       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   ·   实用小工具   ·   5908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 06:12 · PVG 14:12 · LAX 22:12 · JFK 01:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.