tmux 介绍

截图

dwm + alacritty + tmux + neovim + ranger:

下载

tmux 可以说是一款 TUI 开发人员不可或缺的终端复用神器。

$ yay -S tmux

在终端输入以下命令即可进入 tmux:

$ tmux

概念

tmux 中有以下一些概念:

  • server 服务
  • session 会话
  • window 窗口
  • pone 窗格

每次输入 tmux 命令后就会启动一个 tmux 服务和 tmux 会话。

一个 tmux 会话可以有多个窗口,一个窗口可以有多个窗格。

我们最常使用的就是 tmux 中的窗口和窗格。

按键

prefix

和 vim 类似,tmux 中也有一个前缀键的概念,默认是 <c-b>

默认所有的快捷键在按下之前都必须先按下 prefix 键位才会生效。

比如:

ctrl+b w
ctrl+b s

会话

按键 描述
s 查看所有会话
d 关闭当前会话
$ 重命名会话

窗口

按键 描述
c 新建窗口
& 关闭窗口
w 窗口列表
n 下一个窗口
p 上一个窗口
l 上一次窗口
1-9 切换到指定窗口
, 窗口重命名

按下 prefix & 后会提醒你是否关闭窗口,按 y 或 n 即可。

窗格

按键 描述
% 水平窗格
" 垂直窗格
x 关闭窗格
; 向上切换窗格
o 向下切换窗格
方向 向上下左右移动
{ 与上一个窗格交换位置
} 与下一个窗格交换位置
c-o 向前移动窗格位置,第一个变最后一个
a-o 向后移动窗格位置 ,最后一个变第一个
! 将当前窗格拆分为独立窗口
z 全屏显示当前窗格,再按一次便会原来大小
c-方向 调整窗格大小
q 显示窗格编号

配置

默认键

使用以下命令将所有 tmux 的默认按键命令导出到一个文件中,方便后期修改:

$ tmux list-keys > /tmp/tmux_default.txt

插件

tmux 和 vim 类似,都是用插件管理插件。

首先需要下载 tmux 插件管理器 tpm:

$ https://github.com/tmux-plugins/tpm.git

下载完成后使用 vim 打开 ~/.tmux.conf,并且按下大 G。

按下 i 并填入以下内容,安装我微调之后的 tmux-power 或原本 tmux-power 状态栏插件。

$ set -g @plugin 'askify/tmux-power'

run '~/.tmux/plugins/tpm/tpm'

添加完成后重新运行 tmux 服务,然后按下快捷键即可下载插件:

prefix + I : 下载插件
prefix + U : 更新插件
prefix + alt + u:卸载插件(需要将插件从 ~/.tmux.conf 文件中注释)

下载完成的插件都在 ~/.tmux/plugins/ 目录中。

我的配置

下面是我的 tmux 配置,对原本某些按键做了修改,让其更符合我个人的使用习惯:

# support mouse
set -g mouse on
# overtime time : ms
set -sg escape-time 1
# start window index
set -g base-index 1
# start pane index
setw -g pane-base-index 1 # == reload ==
bind r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded." # == leader ==
unbind C-b
set -g prefix C-t # == unbind ==
unbind d
unbind &
unbind '"'
unbind %
unbind C-s
unbind C-v
unbind C-u
unbind C-d
unbind C-k
unbind C-j
unbind C-h
unbind C-l
unbind k
unbind j
unbind h
unbind l
unbind f
unbind q
unbind t
unbind Tab
unbind p
unbind n
unbind c # == pane ==
# split
bind C-s splitw -v
bind C-v splitw -h # swap
bind C-u rotate-window
bind C-d rotate-window -D # select
bind C-k selectp -U
bind C-j selectp -D
bind C-h selectp -L
bind C-l selectp -R # full screen
bind c-f resize-pane -Z # close
bind c-q kill-pane # resize
bind k resizep -U 10
bind j resizep -D 10
bind h resizep -L 10
bind l resizep -R 10 # == window ==
bind t new-window
bind Tab last-window
bind p previous-window
bind n next-window
bind c kill-window # == theme ==
# follow terminal color
set -g status-style bg=default
# status bar position
set -g status-position bottom set -g @tmux_power_theme '#87D7FF' # == plugin == set -g @plugin 'askify/tmux-power' run '~/.tmux/plugins/tpm/tpm'

外部资源

tmux 快速上手的更多相关文章

  1. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  2. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  3. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  4. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  5. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  6. Git版本控制Windows版快速上手

    说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...

  7. Objective-C快速上手

    最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...

  8. Netron开发快速上手(二):Netron序列化

    Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...

  9. Netron开发快速上手(一):GraphControl,Shape,Connector和Connection

    版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...

随机推荐

  1. 分布式锁redis

    1. 首先看这篇文章中  https://mp.weixin.qq.com/s/s-ozSjM5WmSUopxttSWYeQ 为什么redis能实现锁功能呢,看下图,redis命令窗口中,setnx  ...

  2. java中会存在内存泄漏吗,请简单描述?

    所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中.java中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象编程了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉.由于Jav ...

  3. 上传文件到阿里云linux服务器(windows到Linux的文件上传)

    在"运行"中输入cmd,打开控制台,切换到刚才Putty的安装目录下,我的是E:\Putty,然后输入pscp命令,我们需要这个命令来实现文件的上传.如下命令格式: F:\PuTT ...

  4. 为什么要配置JDK环境变量?

    1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的bin目录增加到现有的PATH ...

  5. java-doc注释详解

    注释的分类 // 注释一行/* ...... */ 注释若干行/** ...... */ 注释若干行,并写入 javadoc 文档 列子 /** * show 方法的简述. * <p>sh ...

  6. Spring Data Jpa使用QueryDsl接口出现的一些问题

    1.QuerydslPredicateExecutor当实现此接口时,如果出现什么什么类没有找到的时候,请确认相关的querydsl依赖是否已经添加到maven依赖中 <dependency&g ...

  7. 【代码开源】GreaterWMS 抖音SDK调用教程

    应用介绍 GreaterWMS 抖音SDK调用教程 SDK具体功能: 1,一仓多店,多仓多店 2,库存同步,商品同步 3,快递发货,物流轨迹 4,订单拦截 5,字节云仓 6,精选联盟 7,供应分销 8 ...

  8. Pandas基础笔记

    Basic knowledge of Pandas pandas库是以numpy库为基础建成的,是python数据分析的核心库.也正因如此,pandas内的数据结构与numpy的数组有许多相似的地方. ...

  9. STM32 之 HAL库(固件库)

    1 STM32的三种开发方式 通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的.一般大多数都会选用标准库和HAL库,而极少部分人会通过直 ...

  10. Clickhouse 纯手工迁移表

    [应用场景] 由于一些未可知的原因,导致原表不可用,也不能恢复.通过手动迁移的方法来恢复业务 [解决办法] 新建一张 copy 表,把原表的 data 目录复制到新表的data 目录,并 attach ...