• Tmux 简单配置使用


    Tmux Prefix (prefix)

    Tmux 使用 Prefix 以将自身的快捷键与其它应用区分,运行 Tmux 快捷键时首先按下这个 Prefix (默认是 Ctrl-b 组合键),松手后紧接着按下对应操作的快捷键。

    比如,如果我想要列出所有的 Tmux 会话(对应快捷键是 s)需要这样:

    1. 按下 Ctrl-b 组合键(默认 Prefix );
    2. 放开 Ctrl-b
    3. 按下 s 键。

    Tmux 配置文件的默认地址是 ~/.tmux.conf,每次启动 Tmux 时都会加载该文件。

    修改 Prefix( Prefix )

    Tmux 的配置未见位置是 ~/.tmux.conf,修改 Tmux Prefix 首先需要取消绑定原有的的 Prefix ; 再设置新的 Prefix,这里以 Ctrl-w 为例:

    unbind C-b
    set -g prefix C-w
    

    绑定快捷键

    Tmux 快捷键绑定的命令是 bind 快捷键 作用,即可将“作用”绑定在 Prefix +快捷键 上, 下面这行配置会将“重新加载”配置文件的操作绑定在快捷键 R 上:

    bind R source-file ~/.tmux.conf ; display-message "Config reloaded..."
    

    Tmux 特性

    Pane(面板)

    如果你用过 Vim 之类的编辑器肯定不会对 Pane 概念感到陌生,Tmux 也支持类似的概念, 支持横向和纵向切割面板功能。

    功能命令
    水平切割(上下两半) Prefix + "
    竖直切割(左右) Prefix + %
    调整面板宽度/高度 Prefix - 方向键

    窗口(window)

    窗口的层级要高于面板,作用类似于标签页,默认会在终端的底部显示窗口列表。

    功能命令
    创建新窗口 Prefix + c
    重命名窗口 Prefix + ,
    切换到某个窗口 Prefix + 窗口 ID

    会话(session)

    会话的层级更高于窗口,在终端输入 tmux 会创建并进入一个新的会话,你可以使用会话来区分 使用者或者任务。

    功能命令
    创建并进入新会话 tmux
    进入未关闭的会话 tmux attach 会话名
    退出但保留当前会话 Prefix + d
    列出所有会话 Prefix + s
    重命名当前会话 Prefix + $

    类 Vim 的文字选择和复制方式

    选中和复制文字

    你需要添加以下配置:

    # (进入复制模式后)输入 'v' 开始选择
    bind-key -t vi-copy v begin-selection
    # 将选中文字添加到系统的剪贴板中
    bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
    

    结对编程

    tmux 有个特性,不管多少人连进同一个 tmux 会话,他们看到和操作的都是同一个东西,会话的长宽取决于输出的长款的最小值,因此可以用来进行结对编程练习。

    Tmate 与远程会话共享

    首先你需要安装 Tmate

    brew install tmate
    

    Ubuntu:

    sudo apt-get install software-properties-common && 
    sudo add-apt-repository ppa:tmate.io/archive    && 
    sudo apt-get update                             && 
    sudo apt-get install tmate
    

    输入 tmate 将会创建一个公开的远程会话(会话的底部会出现提示“[tmate] Remote session: ssh [some hash]@ny.tmate.io”),将 ssh 的地址发送给你的朋友就可以分享你的会话了!

    Vim 兼容问题

    主题冲突问题

    如果你跟我一样使用 Vim 作为编辑器,可能同样会遇到输出黑块的问题。解决方案是在 Vim 的配置文件中加入:

    if exists('$TMUX')
      set term=screen-256color
    endif
    

    会话外操作:

    tmux new -s <name-of-my-session> 在会话外创建一个新的会话
    tmux ls 在会话外获取会话列表
    tmux a(attach) -t <name-of-my-session> 在会话外进入会话,不带名字进入第一个会话
    tmux kill-session -t <name-of-my-session> 在会话外删除会话


    上面的操作是在普通命令行下操作的,所以不用按前缀键。下面的都是在tmux中操作的,所以需要按前缀键,默认是ctrl-b;在tmux中,输入冒号是开启命令行。

    基本操作:

    ? 列出所有快捷键;按q返回
    d 脱离当前会话,可暂时返回Shell界面,输入tmux attach能够重新进入之前会话
    s 选择并切换会话;在同时开启了多个会话时使用
    D 选择要脱离的会话;在同时开启了多个会话时使用
    : 进入命令行模式;此时可输入支持的命令,例如kill-server所有tmux会话
    [ 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,q/Esc退出
    ] 进入粘贴模式,粘贴之前复制的内容,按q/Esc退出
    ~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
    t 显示当前的时间

    会话操作:

    :new -s <name-of-my-new-session> 进入会话后创建新的会话
    s 列出会话,进行选择
    :kill-session 删除当前会话
    :kill-server 删除所有会话

    窗口操作:

    c 创建新窗口
    & 关闭当前窗口
    数字键 切换到指定窗口
    p 切换至上一窗口
    n 切换至下一窗口
    l 前后窗口间互相切换
    w 通过窗口列表切换窗口
    , 重命名当前窗口,便于识别
    . 修改当前窗口编号,相当于重新排序
    f 在所有窗口中查找关键词,便于窗口多了切换

    面板操作:

    “ 将当前面板上下分屏
    % 将当前面板左右分屏
    x 关闭当前分屏
    z tmux 1.8新特性,最大化当前所在面板,重复一遍返回
    ! 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
    Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
    Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
    空格键 可以在默认面板布局中切换,试试就知道了
    q 显示面板编号
    o 选择当前窗口中下一个面板
    方向键 移动光标选择对应面板
    { 向前置换当前面板
    } 向后置换当前面板
    Alt+o 逆时针旋转当前窗口的面板
    Ctrl+o 顺时针旋转当前窗口的面板

  • 相关阅读:
    Linux PCI网卡驱动的详细分析
    moand的编程学形式:一个(高阶)类型包办程序的组织--类型关乎复合
    范畴论完全解读:函子是范畴(高阶类型)间的映射
    函数式编程从起点到终点
    锁的本质:操作的序列化
    并发编程概述--C#并发编程经典实例
    异步IO的概念
    基于事件的并发编程
    runloop是iOS系统上的actor模式
    Monad、Actor与并发编程--基于线程与基于事件的并发编程之争
  • 原文地址:https://www.cnblogs.com/52py/p/11231639.html
Copyright © 2020-2023  润新知