我在tmux中最不可少的配置: 用鼠标切换窗口/调节分屏大小
前两天在给另外一个团队帮忙时,看他们在Rails日志、代码文件、git文件系统里面来回穿梭,觉得他们太累了,于是就介绍了 tmux 给他们用。但只讲了一点基本的开窗口、分屏,没给讲太多技巧,因为一下子讲太多也消化不了,还不如让他们自己慢慢学(记得 man tmux 和 C-b ? 就差不多了)。
不过过了一会儿,小陆问我: 咦,你怎么可以用鼠标将窗口拖大拖小? 我说,”就几个配置而已“,正说要让他到我博客上看详细说明,突然想起:咦,我好像没写过这个? 以前在 ~/.tmux.conf 曾经加过不少配置,后来长期留下来的还没几行,其中就有这个。这么重要的东西我居然忘记记在博客上了——说明已经完全记录在脑袋里面了?
其实就这么几行配置:
setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mode-mouse on
这几行的作用分别是:
- 开启用鼠标拖动调节pane的大小(拖动位置是pane之间的分隔线)
- 开启用鼠标点击pane来激活该pane
- 开启用鼠标点击来切换活动window(点击位置是状态栏的窗口名称)
- 开启window/pane里面的鼠标支持(也即可以用鼠标滚轮回滚显示窗口内容,此时还可以用鼠标选取文本)
这几行配置加到 ~/.tmux.conf 中,然后在tmux里面按 C-b : 执行 source ~/.tmux.conf 即可生效 (也可以直接将这几行放在 C-b : 的输入行去执行,每次执行一行,不过 tmux重启后还得再来一遍)。
什么是window?
就是用 C-b c 创建出来的窗口,每个window跟tmux所在的终端一样大,window里面可以容纳多个pane。
所有窗口的名称显示在底部状态栏上,如下图所示。 有了上面的配置,只要点击窗口名就可以切换到指定窗口了 (快捷键是 C-b n, C-b p, C-b 1 .. C-b 9)

(图盗自这里: Increased Developer Productivity with Tmux, Part 2: ~/.tmux.conf)
什么是pane?
就是窗口里面的分屏,可以用 C-b o 来切换到下一个pane,或者用 C-b Up 切换到当前pane上方的pane, 用C-b Down切换到当前pane下方的pane.
还有一种切换方法是 C-b q,tmux会显示每个pane的序号,按这个序号就可以跳过去了(按慢了可不行,得在数字消失前按)。

(本图片盗自: http://www.slideshare.net/lgfang/tmux/14 )
开启了 mouse-select-pane 选项之后, 就可以用鼠标点击面板切换了
用鼠标改变pane的大小
其实前面切换window或者pane,用鼠标并没有太大优势,也就只能略微减轻一点记忆负担。 但用鼠标拖动改变pane的大小这条是比快捷键有优势的,因为用快捷键很难一次调节到位 ,比如是增加6行还是9行? 缩小20列还是40列?而且 还可以斜向拖住交叉点来同时改变多个窗口的大小
附送一条贴士: 最大化/还原pane
- 如果你用的是tmux >= 1.8,那么可以用
C-b z来最大化一个pane,想恢复的时候再次按C-b z就是了 - 如果你用的是tmux < 1.8,那么有点复杂,自己看这里: “Maximizing” a pane in tmux
参考
推荐下面两个slides,讲得都很通俗易懂。不过slideshare被蔷了,各位自己想办法吧
- http://www.slideshare.net/lgfang/tmux (搜了一下,在蔷内找到一个老点的版本: tmux - A Great Terminal Multiplexer)
- http://www.slideshare.net/chenkaie/tmux-rocks
我在tmux中最不可少的配置: 用鼠标切换窗口/调节分屏大小的更多相关文章
- tmux 终端分屏利器使用
介绍 Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话. 不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入.断开会话,这个功能非常实用. 很好的工具,记录一下,以后要常用. ...
- 在tmux中的vi 上下左右键变为了ABCD等字符
在本机上用vim编辑时,上下左右键没有问题,但是在tmux中确出现ABCD等字符. 原因是在tmux这个终端,默认做了字符转换,网上搜了很多答案,解决问题的设置是: set term=xterm
- Mysql中主从复制的原理、配置过程以及实际案例
Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6 ...
- Maven中pom.xml文件的配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Ubuntu下使用tmux实现分屏,以及tmux快捷键
最近用到了终端的复用,使用了tmux,写一下自己的使用和一些快捷键. tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件. 来个效果图: 截图我使用的命令是 gno ...
- 【Linux】Tmux分屏
1.Tmux Arch维基: https://wiki.archlinux.org/index.php/Tmux_(简体中文) 官方WIKI: https://github.com/tmux/tmux ...
- 关闭Windows 2003/2008中IE增强的安全配置的方法
在使用Windows Server 2003/2008操作系统时,打开IE浏览网页时,发现浏览器总提示 "是否需要将当前访问的网站添加到自己信任的站点中去",要是不信 ...
- Spring Boot中只能有一个WebMvcConfigurationSupport配置类
首先将结论写文章的最前面,一个项目中只能有一个继承WebMvcConfigurationSupport的@Configuration类(使用@EnableMvc效果相同),如果存在多个这样的类,只有一 ...
- 痞子衡嵌入式:关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区. 关于串行四线NOR Flash,当其作 ...
随机推荐
- 合并流 SequenceInputStream
SequenceInputStream主要用来将2个流合并在一起,比如将两个txt中的内容合并为另外一个txt.下面给出一个实例: import java.io.File; import java.i ...
- 微信里面防止下拉"露底"组件
前言 在微信里面浏览页面的时候,有一个很管用的方法可以区分这个页面是原生的还是H5形式的.随便打开一个页面,用力往下扯的时候,如果页面上方出现了"黑底",黑底上有一行诸如网页由ga ...
- php快速无限遍历递归文件夹目录、子文件,支持绝对路径和相对路径,支持返回生成数组
支持无限极遍历子文件及文件夹,支持绝对路径和相对路径! 函数说明:array glob ( string $pattern [, int $flags ] )功能:寻找与模式匹配的文件路径,返回包含匹 ...
- 汉化 android studio
Analyze APK...android.jar\com\android\tools\idea\apk\viewer AnalyzeApkAction.class
- Sql Server 修改表所属用户
Sql Server 修改表所属用户 exec sp_changeobjectowner 'tablename','dbo' tablename--所要修改的表明 dbo--是表所属的用户,默认是db ...
- unity 打包编译记录
1.放到Plugins目录下的贴图不会打包进去 2.放到Plugins目录下的dll会自动打包,代码也会打包 3.放在Resources目录下的资源会自动打包 4.放在StreamingAssets目 ...
- 深入理解 Java try-with-resource 语法糖
背景 众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为fina ...
- Exception的ToString()方法究竟返回的是什么
最近项目上线后遇到exception没有堆栈信息.所以跟踪一下 源码,其中主要的code如下: // Returns the stack trace as a string. If no stack ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三十):使用flatMapGroupsWithState替换agg
flatMapGroupsWithState的出现解决了什么问题: flatMapGroupsWithState的出现在spark structured streaming原因(从spark.2.2. ...
- [Nginx] Configuration for SPA
server { listen ; listen [::]:; default_type application/octet-stream; gzip on; gzip_comp_level ; gz ...