美文网首页
Tmux “传家” 配置

Tmux “传家” 配置

作者: Chaos_John | 来源:发表于2020-12-17 20:43 被阅读0次

    欢迎转载,但请在开头或结尾注明原文出处【blog.chaosjohn.com】

    介绍

    Tmux 是一个终端复用软件,在没有终端复用软件之前:

    • 如果要同时执行多项任务,得开多个终端窗口(Terminal),远程的话还得在多个终端窗口里发起多条 SSH 连接(入下图)
      开多个终端窗口
    • 如果在远程执行任务的时候,关闭终端,会强制性关闭 SSH 连接,进而导致任务执行直接中断

    如果用上 Tmux 这样的终端复用软件后:

    • 开启一个 tmux session 后,可以同时打开多个窗口,每个窗口可以分割为多个窗格,每个窗格都是一个 tty(即虚拟终端)
      tmux 示例
    • 关闭终端,运行在 tmux sessiontty 中的任务,依旧会保持运行,重新打开终端,还能连接回该 session

    笔者自用配置

    本文取名为 “传家宝”配置,那可不是说说而已,因为本文内的自定义配置已经陪伴了笔者6年之久了。

    为什么要自定义这份配置呢?因为笔者在最初使用过程中,发现很多不顺手的快捷键,所以大部分自定义项都是跟快捷键有关的。

    配置文件位于用户主目录下,文件名为 .tmux.conf

    先说明一下,Tmux 的前缀键为 ctrl-b,即先按下 ctrl键b键, Tmux 才开始被激活进入快捷键接受模式,比如:

    • ctrl-b 按下后松开,再按一下 cTmux 就会新建窗口(create)
    • ctrl-b 按下后松开,在按一下 dTmux 就会从当前窗口断开转为后台执行(detach)

    自定义窗口下标起始

    Tmux 可以新建很多窗口,默认窗口标号为 0,然后才是 1 2 3 ...(窗格也是)

    虽然很符合程序思维,但是跟键盘上那一排数字键的顺序不吻合,所以改成 1 开始,然后才是 2 3 4 ...

    set-option -g base-index 1
    set-window-option -g pane-base-index 1
    

    自定义快捷键:分割窗格

    默认情况下:

    • 水平分割:ctrl-b + "(引号键)
    • 垂直分割:ctrl-b + %(百分号键)

    改成 -|,更符合行为逻辑

    unbind '"'
    bind - splitw -v
    unbind %
    bind | splitw -h 
    
    bind-key - split-window -c "#{pane_current_path}"
    bind-key | split-window -h -c "#{pane_current_path}"
    

    最后两行表示,通过 -| 分割出的新窗格,shell 的初始路径为当前路径

    自定义快捷键:窗格间移动

    默认的情况下,窗格间移动是 ctrl-b + 方向键

    由于笔者习惯了 Vim 的方向逻辑,所以也增加 hjkl 作为窗格间导航的快捷键(原方向键也保留)

    bind k selectp -U
    bind j selectp -D
    bind h selectp -L
    bind l selectp -R
    

    自定义快捷键:调整窗格大小

    使用 ctrl-b + ctrl-h/j/k/l,用来移动窗格间的分割线方向,达到调整窗口大小的目的(每次移动10行)

    bind ^k resizep -U 10
    bind ^j resizep -D 10
    bind ^h resizep -L 10
    bind ^l resizep -R 10
    

    自定义状态栏的背景和前景色

    默认的背景色为 绿色,前景色为 黑色,笔者分别调整为 黑色黄色

    set -g status-bg black
    set -g status-fg yellow
    
    效果对比入下图: tmux 颜色方案调整前后对比

    自定义状态栏的信息显示

    默认在状态栏右侧显示 主机名 + 时间 + 日期

    因为笔者一般使用 oh-my-zsh,已经配置显示了 主机名 + 时间 + 日期,所以改为只保留 时间(对比见上图)

    set-option -g status-right "#(date +%H:%M' ')"
    set-option -g status-right-length 10
    

    配合 oh-my-zshtmux 插件

    上面也说了,笔者一般使用 oh-my-zsh,如果开启 tmux 插件Tmux 的使用体验又会更上一层楼。

    开启方法:在 ~/.zshrcplugins=(git) 括号里追加 tmux,空格隔开

    它可以:

    • tmux attach -t $session_name 缩减成 ta $session_name
    • tmux attach -d -t $session_name 缩减为 tad $session_name
    • tmux list-sessions 缩减为 tl

    还有其他的缩减,有兴趣的同学可以前往 oh-my-zsh 插件目录看一眼 tmux.plugin.zsh 文件

    相关文章

      网友评论

          本文标题:Tmux “传家” 配置

          本文链接:https://www.haomeiwen.com/subject/wactnktx.html