zoukankan      html  css  js  c++  java
  • tmux

    我的~/.tmux.conf

    set-window-option -g mode-keys vi #可以设置为vi或emacs
    set-window-option -g utf8 on #开启窗口的UTF-8支持
    bind h select-pane -L
    bind j select-pane -D
    bind k select-pane -U
    bind l select-pane -R

    快捷键

               C-b  将前缀密钥(C-b)发送到应用程序。
               C-o  向前旋转当前窗口中的窗格。
               C-z  暂停tmux客户端。
               !    将当前窗格打开窗口。
               "      将当前窗格拆分为两个,顶部和底部。
               #    列出所有粘贴缓冲区。
               $      重命名当前会话。
               %    将当前窗格分为左,右两个。
               &     杀死当前窗口。
               '       提示选择一个窗口索引。
               (      将附加的客户端切换到上一个会话。
               )      将连接的客户端切换到下一个会话。
               ,   重命名当前窗口。
                -    删除最近复制的文本缓冲区。
               .    提示索引移动当前窗口。
               0到9  选择窗口0到9。
               :  输入tmux命令提示符。
               ;  移至先前活动的窗格。
               =  从列表中选择要交互粘贴的缓冲区。
               ?  列出所有键绑定。
               D  选择要分离的客户端。
               L  将连接的客户端切换回上一个会话。
               [  进入复印模式以复制文本或查看历史记录。
               ]  粘贴最近复制的文本缓冲区。
               c  创建一个新窗口。
               d  分离当前客户端。
               f  提示在打开的窗口中搜索文本。
               i  显示有关当前窗口的一些信息。
               l  移至先前选择的窗口。
               n  转到下一个窗口。
               o  选择当前窗口中的下一个窗格。
               p  切换到上一个窗口。
               q  简要显示窗格索引。
               r  强制重绘附加的客户端。
               m  标记当前窗格(请参阅select-pane -m)。
               M  清除标记的窗格。
               s  以交互方式为连接的客户端选择新会话。

               t  显示时间。
               w  以交互方式选择当前窗口。
               x  杀死当前窗格。
               z  切换当前窗格的缩放状态。
               {  将当前窗格与前一个窗格交换。
               }  使用下一个窗格交换当前窗格。
               〜  显示来自tmux的先前消息(如果有)。
               Page Up  进入复印模式并向上滚动一页。
               方向键   切换到当前窗格上方,下方,左侧或右侧的窗格。
               M-1到M-5   在五种预设布局中的一种中排列窗格:偶数水平,偶数垂直,主水平,主垂直或平铺。
               空格  在下一个预设布局中排列当前窗口。
               M-n  使用铃声或活动标记移动到下一个窗口。
               M-o  向后旋转当前窗口中的窗格。
               M-p  使用铃声或活动标记移动到上一个窗口。
               C-Up,C-Down
               C-Left,C-Right
                           以一个单元格的步长调整当前窗格的大小。
               M-Up,M-Down
               M-Left,M-Right
                           以五个单元格为步骤调整当前窗格的大小。

         可以使用bind-key和unbind-key命令更改密钥绑定。

     https://wdxtub.com/2016/03/30/tmux-guide/

    tmux 指南

    今天试用了一下 tmux,发现简直是神器!以前还傻傻不停开窗口,现在一个窗口就可以都搞定啦!


    更新记录

    • 2016.03.30: 初稿

    Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效,比方说可以像下面这样:

    一个面板监视服务器,一个面板查看硬件状况

    需要注意的是,这里是在我本地使用 tmux,最好在远程主机也安装 tmux,这样就只需要连接一次。

    Hello World

    前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看。其他的功能还有:

    1. 窗口切换,每个窗口里还可以分割面板
    2. 配置方便,可以使用脚本
    3. 类似 vim 的双层操作逻辑
    4. 复制粘贴缓冲区

    安装的话也很简单,在 mac 下直接 brew install tmux(前提需要安装 homebrew),ubuntu 下则直接 sudo apt-get install tmux

    在终端中输入 tmux 就可以打开一个新的 tmux session,tmux 的所有操作必须先使用一个前缀键(默认是 ctrl + b)进入命令模式,或者说进入控制台,就像 vim 中的 esc。

    基本操作

    信息查询

    • tmux list-keys 列出所有可以的快捷键和其运行的 tmux 命令
    • tmux list-commands 列出所有的 tmux 命令及其参数
    • tmux info 流出所有的 session, window, pane, 运行的进程号,等。

    窗口控制

    先来看看在 tmux 之外如何进行控制

    • session 会话:session是一个特定的终端组合。输入tmux就可以打开一个新的session
      • tmux new -s session_name 创建一个叫做 session_name 的 tmux session
      • tmux attach -t session_name 重新开启叫做 session_name 的 tmux session
      • tmux switch -t session_name 转换到叫做 session_name 的 tmux session
      • tmux list-sessions / tmux ls 列出现有的所有 session
      • tmux detach 离开当前开启的 session
      • tmux kill-server 关闭所有 session
    • window 窗口:session 中可以有不同的 window(但是同时只能看到一个 window)
      • tmux new-window 创建一个新的 window
      • tmux list-windows
      • tmux select-window -t :0-9 根据索引转到该 window
      • tmux rename-window 重命名当前 window
    • pane 面板:window 中可以有不同的 pane(可以把 window 分成不同的部分)
      • tmux split-window 将 window 垂直划分为两个 pane
      • tmux split-window -h 将 window 水平划分为两个 pane
      • tmux swap-pane -[UDLR] 在指定的方向交换 pane
      • tmux select-pane -[UDLR] 在指定的方向选择下一个 pane

    更常用的是在 tmux 中直接通过默认前缀 ctrl + b 之后输入对应命令来操作,具体如下(这里只列出输入默认前缀之后需要输入的操作):

    基本操作

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

    窗口操作

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

    面板操作

    • " 将当前面板上下分屏(我自己改成了 |
    • % 将当前面板左右分屏(我自己改成了 -
    • x 关闭当前分屏
    • ! 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板
    • ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
    • alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
    • q 显示面板编号
    • o 选择当前窗口中下一个面板
    • 方向键 移动光标选择对应面板
    • { 向前置换当前面板
    • } 向后置换当前面板
    • alt+o 逆时针旋转当前窗口的面板
    • ctrl+o 顺时针旋转当前窗口的面板
    • z 最大化当前所在面板
    • page up 向上滚动屏幕,q 退出
    • page down 向下滚动屏幕,q 退出

    因为 iTerm2 的支持,很多切换的操作可以直接用鼠标进行,非常方便。具体大家可以自己尝试一下。

    配置

    我们可以先进行一些简单的配置,修改 ~/.tmux.conf 即可,让整个使用更方便。

    #-- base --#
     
    set -g default-terminal "screen-256color"
    set -g display-time 3000
    set -g history-limit 10000
    set -g base-index 1
    set -g pane-base-index 1
    set -s escape-time 0
    set -g mouse on
     
    #-- bindkeys --#
     
    # split windows like vim. - Note: vim's definition of a horizontal/vertical split is reversed from tmux's
     
    unbind s
    bind s split-window -v
    bind S split-window -v -l 40
    bind v split-window -h
    bind V split-window -h -l 120
     
    # navigate panes with hjkl
    bind h select-pane -L
    bind j select-pane -D
    bind k select-pane -U
    bind l select-pane -R
     
    # key bindings for horizontal and vertical panes
    unbind %
    bind | split-window -h # 使用|竖屏,方便分屏
    unbind '"'
    bind - split-window -v # 使用-横屏,方便分屏
     
    # swap panes
    bind ^u swapp -U
    bind ^d swapp -D
     
    bind q killp
    bind ^e last
     
    unbind r
    bind r source-file ~/.tmux.conf ; display "Configuration Reloaded!"
     
    #-- statusbar --#
     
    set -g status-justify centre
    set -g status-left "#[fg=red]s#S:w#I.p#P#[default]"
    set -g status-right '[#(whoami)#(date +" %m-%d %H:%M ")]'
    set -g status-left-attr bright
    set -g status-left-length 120
    set -g status-right-length 120
    set -g status-utf8 on
    set -g status-interval 1
    set -g visual-activity on
    setw -g monitor-activity on
    setw -g automatic-rename off
     
    # default statusbar colors
    set -g status-bg colour235 #base02
    set -g status-fg colour136 #yellow
    set -g status-attr default
     
    # default window title colors
    setw -g window-status-fg colour244
    setw -g window-status-bg default
    #setw -g window-status-attr dim
     
    # active window title colors
    setw -g window-status-current-fg colour166 #orange
    setw -g window-status-current-bg default
    #setw -g window-status-current-attr bright
     
    # window title string (uses statusbar variables)
    set -g set-titles-string '#T'
    set -g status-justify "centre"
    set -g window-status-format '#I #W'
    set -g window-status-current-format ' #I #W '
     
    # pane border
    set -g pane-active-border-fg '#55ff55'
    set -g pane-border-fg '#555555'
     
    # message text
    set -g message-bg colour235 #base02
    set -g message-fg colour166 #orange
     
    # pane number display
    set -g display-panes-active-colour colour33 #blue
    set -g display-panes-colour colour166 #orange
     
    # clock
    setw -g clock-mode-colour colour64 #green
     
     
    # 修改进入命令模式按键
    # remap prefix to Control + a
    # set -g prefix C-a
    # unbind C-b
    # bind C-a send-prefix

    最终的效果是

    参考链接

  • 相关阅读:
    微信小程序入门注意
    回调函数理解实例
    2017最新教程--如何下载美拍视频
    tomcat如何利用waf进行防护
    深入理解正则表达式-----应用于检测csrf的正则表达式
    snort安装--daq,dnet---ERROR! dnet header not found, go get it from...等错误解决方案
    先知安全技术社区原创文章奖励计划
    谈一谈情报威胁与态势感知
    pfring破解DNA限制
    八皇后--python代码
  • 原文地址:https://www.cnblogs.com/develon/p/10322258.html
Copyright © 2011-2022 走看看