打造高效前端工作环境 - tmux
打造高效前端工作环境 - tmux
前言
现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一个工作台上那就好了。咦,tmux不就专干这事的吗?
tmux入门
安装sudo apt install tmux
tmux的C/S架构
服务端(Server), 1个服务端维护1~N个会话;
会话(Session), 1个会话对应1~N个窗口;
窗口(Window), 1个窗口对应1~N个窗格;
窗格(Pane),vim、bash等具体任务就是在窗格中执行。
1.进入tmux
在shell中执行tmux
就会自动创建一个匿名会话、窗口和窗格,而窗格内正在运行着另一个shell程序,这时我们可以像平常使用shell一样来工作。而tmux真正的威力在于对会话、窗口和窗格的管理,但在此之前我们要先了解开启魔法的阀门——快捷键前缀(prefix)。
2.快捷键前缀(prefix)
tmux为使自身的快捷键和其他软件的快捷键互不干扰,特意提供一个快捷键前缀,默认为Ctrl
+b
。因此当我们输入任何tmux快捷键前必须先输入Ctrl
+b
。
由于快捷键前缀是可以重置的,因此后文将以<prefix>
来指代快捷键前缀。
3.操作Pane
创建(通过分割当前pane实现)
<prefix>
"
,水平分割当前pane
<prefix>
%
,垂直分割当前pane
关闭
<prefix>
x
,删除当前pane
跳转
<prefix>
<up-arrow>
/<down-arrow>
/<left-arrow>
/<right-arrow>
, 通过上下左右方向键跳转到对应的pane
<prefix>
;
,跳转到上次激活的pane
<prefix>
o
,跳转到下一个pane
<prefix>
q
,显示各pane的编号,并输入编号跳转到对应的pane
修改尺寸
<prefix>
+<up-arrow>
/<down-arrow>
/<left-arrow>
/<right-arrow>
, 通过上下左右方向修改当前pane的高宽
缩放
<prefix>
z
,缩放当前pane
其他
<prefix>
{
,将当前pane移动到最左边
<prefix>
}
,将当前pane移动到最右边
<prefix>
!
,将当前pane转变成window
4.操作Windoiw
创建
<prefix>
c
,创建window
重命名
<prefix>
,
,重命名当前window
注意:由于tmux默认会根据当前pane执行的程序来改变window名称,因此需要在~/.tmux.conf
中加入set-option -g allow-rename off
来固化window名称。
关闭
<prefix>
&
,关闭当前window
跳转
<prefix>
n
,跳转到下一个window
<prefix>
p
,跳转到上一个window
<prefix>
0
...9
,跳转到对应的window
其他
<prefix>
:swap-window -s 2 -t 1
, 调转编号为2和1的两个window的次序
5.操作Session
<prefix>
s
,显示所有会话
<prefix>
$
,重命名
<prefix>
d
,脱离当前会话
<prefix>
:kill-session
,关闭当前会话
<prefix>
(
,跳转到上一个会话
<prefix>
)
,跳转到下一个会话
tmux进阶
1.细抠Session操作
我们为前端开发环境和后端开发环境分别创建两个Session来独立管理,那么我们就可以灵活地在两个Session间穿梭,并且可以分别和前端、后端开发人员协同工作,下面我们看看相关的命令吧。
$ tmux
或 <prefix>
:new
, 创建匿名Session
$ tmux new -s mysession
或 <prefix>
:new -s mysession
, 创建名为mysession的Session
$ tmux kill-session -t mysession
,关闭mysession会话
$ tmux kill-session -a
,关闭所有会话
$ tmux ls
,显示所有会话信息
$ tmux a
,附加到最近一个会话
$ tmux a -t mysession
,附加到会话mysession
2.多个panes输入同步
<prefix>
+ :setw synchronize-panes
这个功能在通过ssh维护多台服务器时十分有用!
3.复制粘贴
通过tmux我们可以通过纯键盘操作实现跨pane的复制粘贴。首先在~/.tmux.conf
文件中添加setw -g mode-keys vi
,启用vi键盘方式(hjkl
方向键,/?nN
搜索)操作buffer内容。
进入复制模式,<prefix>
[
开始选择,<Spacebar>
选择结束并将内容复制到新的buffer,<Enter>
取消选择,<Esc>
从buffer_0粘贴到光标位置,<prefix>
]
可见复制的内容均暂存在buffer中,而tmux也提供直接操作buffer的命令给我们.
<prefix>
: show-buffer
,显示buffer_0的内容
<prefix>
: capture-pane
, 保存当前pane的内容
<prefix>
: list-buffers
, 显示所有buffer内容
<prefix>
: choose-buffer
, 选择buffer并粘贴
<prefix>
: save-buffer buf.txt
, 保存buffer内容到but.txt
<prefix>
: delete-buffer -b 1
, 删除buffer_1的内容
4.美化状态栏
默认的tmux样式有点丑,而https://github.com/gpakosz/.tmux这个配置则为我们提供漂亮状态栏.
总结
尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/6057050.html ^_^肥仔John
打造高效前端工作环境 - tmux的更多相关文章
- 打造高效前端工作环境-tmuxinator
前言 虽然tmux能让我们方便组织工作环境,但每次重新打开会话时都需要手动重新创建窗口.窗格和执行各种程序,能不能像VS那样以工程为单位保存窗口.窗格和各种所需执行的程序的信息呢?tmuxinato ...
- 打造高效的工作环境 – SHELL 篇
注:本文由雷俊(Javaer/Emacser)和我一起编辑,所以文章版权归雷俊与我共同所有,转载者必需注明出处和我们两位作者.原文最早发于酷壳微信公众号,后来我又做了一些修改,再发到博客这边. 程序员 ...
- [转载] 高效MacBook工作环境配置
原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...
- [转载] 高效 MacBook 工作环境配置
原文: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=208231200&idx=1&sn=8a76ddc56c1f ...
- 高效 MacBook 工作环境配置
转自:https://mp.weixin.qq.com/s/sloc6HgKcosXtWcbMB_5hA 工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快 ...
- 高效 MacBook 工作环境配置,超实用!
作者:正鹏 & 隃墨 http://www.xialeizhou.com/?p=71 前言 工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快速准确 ...
- Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境
我们开发安卓大多是使用Eclipse和安卓SDK中自带的安卓模拟器.当然,Google早就推出了自己的安卓开发环境——Android studio,在不久前,Google发布了Android Stud ...
- 安装完CentOS 7 Minimal之后,从头打造桌面工作环境
安装完CentOS 7 Minimal之后,从头打造桌面工作环境 U盘装CentOS 7 DVD版不能引导的解决办法 更改root密码 SSH登录 增加除root之外的常规用户 装完CentOS 7之 ...
- 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装
WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令: npm install wepy-cli -g 稍等片刻,成功安装后,即可创建WePY项目. 注意:如果npm安 ...
随机推荐
- 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- Yeoman 官网教学案例:使用 Yeoman 构建 WebApp
STEP 1:设置开发环境 与yeoman的所有交互都是通过命令行.Mac系统使用terminal.app,Linux系统使用shell,windows系统可以使用cmder/PowerShell/c ...
- [.NET] C# 知识回顾 - 委托 delegate (续)
C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- linux centos中添加删除修改环境变量,设置java环境变量
前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...
- java中if和switch哪个效率快
首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...
- Oracle 列数据聚合方法汇总
网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000 ...
- redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
前段时间在做用户画像的时候,遇到了这样的一个问题,记录某一个商品的用户购买群,刚好这种需求就可以用到Redis中的Set,key作为productID,value 就是具体的customerid集合, ...
- MySQL 优化之 MRR (Multi-Range Read:二级索引合并回表)
MySQL5.6中引入了MRR,专门来优化:二级索引的范围扫描并且需要回表的情况.它的原理是,将多个需要回表的二级索引根据主键进行排序,然后一起回表,将原来的回表时进行的随机IO,转变成顺序IO.文档 ...
- 《Note --- Unreal --- MemPro (CONTINUE... ...)》
Mem pro 是一个主要集成内存泄露检测的工具,其具有自身的源码和GUI,在GUI中利用"Launch" button进行加载自己待检测的application,目前支持的平台为 ...