又双叒叕一份Tmux配置:专为远程设计的按键方案

Tmux是一个终端复用器,网上配置要多少有多少,但是秉承“自己的才是最好的”原则,我决定照葫芦画瓢写一份自己的Tmux配置。

然后发现,网上大部分(99%)Tmux配置都没有把远程的情况考虑进去,例如VNC远程快捷键、ssh远程快捷键的传送等问题都没考虑进去,于是几乎重新设计了所有常用的快捷键。然后又使用了一段时间,不断改进,今天决定把它分享出来。

Tmux

特点:

  • 为远程操作设计的快捷键,完美实现在Tmux里跑Tmux的场景。
  • 自动连接上一次退出的会话,无缝衔接上一次操作(防止意外退出而中断操作)。
  • 快捷键合理分配,所有快捷键操作都不需要移动手腕(笔记本电脑而言,移动手腕算我输)。
  • 插件安装/更新、自定义外观、自定义设置均可一键操作(设置了快捷键直接编辑)。
  • 一条命令即可安装。

项目地址:https://github.com/izuolan/.tmux

Prefix

最佳:Alt-z

Prefix,这是整个Tmux能否高效使用的关键,因此Prefix两个按键必须键程合适,不需要移动太远的范围。

Tmux默认是Ctrl-b,大部分Tmux配置选择改为Ctrl-a,或者Ctrl-z,老实说Ctrl-z这个方案最容易让人接受,键程最短,不容易误按,然而大部分Terminal都把Ctrl-z设为suspend快捷键,这可就尴尬了,特别是远程时用vim打着代码,突然按两下Prefix就把vim挂起了,非常影响使用。

于是尝试不少组合之后,决定把 Alt-z 设为 Prefix,超短键程,没有常用的快捷键冲突(大概)。考虑到键盘布局差异,这两个键一般都不会相隔太远。

有了Prefix,接下来就是围绕z键设置快捷键。接下来不废话,直接介绍快捷键设置,以及在解释为何在远程中这样设置最科学。

会话

创建会话(new session,所以使用快捷键n):

# 创建, tmux new -s <name-of-my-session> 创建一个新的会话
$ tmux new -s basic
# 在tmux中创建一个会话
[PREFIX-n] new -s <name-of-my-session>
新建会话

离开会话(后台运行,默认d

# 分离会话 detach
[PREFIX-d]
[detached (from session basic)]
# or
$ tmux detach

查看会话列表,切换会话

# 查看已有会话列表(list-session)
$ tmux ls
basic: 1 windows (created Wed Aug  5 14:54:04 2015) [200x49]

# 在tmux中查看会话列表并切换
[PREFIX-s]

重新进入会话

# 连接会话(只有一个)
$ tmux attach
$ tmux attach -t basic
$ tmux a -t basic

关闭会话

# 退出会话
$ tmux kill-session -t <Num>
# or
[PREFIX-Alt-q]
# 杀掉全部会话
$ tmux kill-server

重命名会话

# 重命名会话
[PREFIX-$]

会话我基本没有改动默认配置,因为我一般不会遇到需要操作多个会话的情况。

窗口

创建窗口(create window,所以设置为c

# 创建一个新的窗口
[PREFIX-c]

重命名窗口(这个保留默认,

# 重命名一个窗口
[PREFIX-,] 之后输入名字回车

切换窗口

# 切换窗口
[PREFIX-[]
[PREFIX-]]
# 设置这两个键是因为不需要移动手腕,一般就在回车键上面,又刚好成对。vi中常用的h、l后面会用到,所以这里不用。
# 切换到对应窗口
[PREFIX-1/2/3]
# 切换到上一个窗口
[PREFIX-Tab]
# 可视化选择切换到的窗口
[PREFIX-w]

退出窗口

# 退出窗口
exit 
# 与窗口列表快捷键类似,`Alt-w`就是关闭,直接`w`就是窗口列表,简单好记。
[PREFIX-Alt-w] 会有确认

面板

分割面板(键盘上唯有这两个键最直观表达分屏效果,所以就是\- 啦)

# 垂直/水平分割窗口
[PREFIX--] / [PREFIX-\]

关闭面板

# 关闭一个面板, 要确认
[PREFIX-x]
# 或者
exit [面板里执行]

切换面板

[PREFIX-hjkl]   pane之间移动
[PREFIX-arrow]  pane之间移动

[PREFIX-Space]  最近使用两个窗口之间切换
[PREFIX-q]    展示窗口数字并选择跳转

为了统一远程与本地的快捷键,即便是Pane操作我也设置了需要Prefix才能触发,不喜欢的话可以改为直接触发,但这样本地与远程快捷键不统一,反而有些麻烦。

移动面板

[PREFIX-<] 当前pane移到左边
[PREFIX->] 当前pane移到右边

调整面板

[PREFIX-HJKL]      pane大小调整
[PREFIX-Alt-arrow] pane大小调整
# 此处的Pane调整算是我最不满意的一个地方,因为Alt-h刚好是man命令的快捷键,避免冲突只能放弃Alt-hjkl的方式,改为PREFIX-HJKL,这里手指要多移动一次到Shift键上面真是让人不爽。因此补充一组快捷键,使用方向键调整。
[PREFIX-z]    暂时把窗口变大

其他

[PREFIX-!]     当前面板在新的窗口中打开
[PREFIX-space] 会自动切换依次使用这些布局(几种窗口布局轮流切换)

复制粘贴

[PREFIX-[]      进入复制模式
[PREFIX-Enter]  进入复制模式

=> 可以进行的操作
space/v    开始选择
Ctrl-v     整块选择
hjkl       方向键移动
w/b        向前向后移动一个单词
fx/Fx      行内移动到下一个字符位置
ctrl-b/f   在缓冲区里面翻页
g/G        到缓冲区最顶/底端
/ ?        向下, 向上查找
n/N        查找后下一个, 上一个
Enter/y    复制
[PREFIX-]] 粘贴

# 其他增强:

# 复制整个pane可见区域
[PREFIX-:] capture-pane

# 查看缓冲区内容
[PREFIX-:] show-buffer

# 列出缓冲区列表
[PREFIX-:] list-buffers

# 从缓冲区列表选择并插入到当期面板
[PREFIX-:] choose-buffer => 回车

其他

显示全部快捷键

[PREFIX-?]  查看所有快捷键
[PREFIX-e]  编辑Tmux配置
[PREFIX-E]  编辑主题
[PREFIX-`]  同步Pane操作
[PREFIX-~]  取消同步操作

命令模式

[PREFIX-:]

# 一些命令模式下的命令
# 新建窗口
new-window -n console

# 新建并执行命令
new-window -n processes "top"

增强

1. Tmuxinator

Tmuxinator 是一个 Ruby 的 gem 包,可用于创建 Tmux 的会话。它的工作方式是先在配置文件中定义会话中的细节,然后用 1 条命令创建出这些会话

gem install tmuxinator
tmuxinator new project_a => ~/.tmuxinator/project_a.yml => 配置

启动: tmuxinator start project_a
可以别名: mux start project_a

2. vim 插件

christoomey/vim-tmux-navigator, 安装更便捷的导航跳转


参考链接:

Tmux

gpakosz/.tmux

jbnicolai/tmux

tmux-plugins

Arch Wiki

tmuxifier

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容