打造高效前端工作环境-tmuxinator

前言

 虽然tmux能让我们方便组织工作环境,但每次重新打开会话时都需要手动重新创建窗口、窗格和执行各种程序,能不能像VS那样以工程为单位保存窗口、窗格和各种所需执行的程序的信息呢?tmuxinator恰恰能解决我们这个需求!

安装与配置

 安装gem

$ sudo apt install gem
$ gem sources --remove https://rubygems.org --add http://gems.ruby-china.org/

 确保gem的源有且仅有http://gems.ruby-china.org/

$ gem sources -l

 安装Tmuxinator

$ gem install tmuxinator

 配置别名mux和tmuxinator子命令智能补全
自动根据使用的shell(bash,zsh,fish)下载配置脚本,并启用配置。

$ if [[ $SHELL == *fish* ]];then pushd ~/.config/fish/completions/; else pushd ~/.tmuxinator/; fi &&
curl -O "https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/tmuxinator.$(basename $SHELL)" &&
popd &&
if [[ $SHELL != *fish* ]];then echo "source ~/.tmuxinator/tmuxinator.$(basename $SHELL)" >> ~/.$(basename $SHELL)rc; fi &&
if [ -z $EDITOR ];then echo "export EDITOR='vim'" >> ~/.$(basename $SHELL)rc; fi &&
source ~/.$(basename $SHELL)rc

入门

1.创建并编辑项目配置,mux n <project_name>
示例:

$ mux n demo

然后进入项目配置编辑界面

# ~/.tmuxinator/demo.yml
# 默认配置
name: demo #项目(配置)名称,不要包含句号
root: ~/   #项目的根目录,作为后续各命令的当前工作目录使用

windows:
    - editor: # 配置名称为editor的窗口
            layout: main-vertical # 由于editor下存在多个窗格,因此需要layout可以设置布局(5个默认值even-horizontal,even-vertical,main-horizontal,main-vertical,tiled)
            panes:
                - vim # 配置一个窗格运行vim
                - guard # 配置另一个窗格运行guard
    - server: bundle exec rails s # 配置名称为server的窗口, 且仅有一个执行bundle exec rail s的窗格
    - logs: tail -f log/development.log # 配置名称为logs的窗口, 且仅有一个执行tail -f log/development.lgo的窗格

根据修改配置得到如下

# ~/.tmuxinator/demo.yml
name: demo
root: ~/repos/demo/
pre_window: nvm use 4

windows:
    - editor: vim index.html
    - server: npm run dev
    - stats:
            layout: even-horizontal
            panes:
                - npm run watch:html
                - npm run watch:css
                - npm run watch:js
    - note:
            root: ~/repos/note/ # 可在窗口下通过root来配置该窗口下各命令的当前工作目录
            panes:
                - vim pugjs.md

然后保存文件就OK了!

2.打开项目(i.e.根据项目配置启动tmux会话),mux <project_name>mux s <project_name>
示例:

$ mux demo

然后tmuxinator就会创建一个tmux会话,并根据刚才编辑的配置文件创建窗口和窗格

3.关闭项目(i.e.根据项目配置关闭tmux会话),mux st <project_name>
示例:在tmux某个shell中输入

$ mux st demo

4.编辑项目配置,mux e <project_name>mux o <project_name>
5.查看现有项目配置,mux l
6.删除项目(i.e.删除现有项目配置),mux d <project_name> [<project_name>]*
7.修改项目配置名称,mux c <old_project_name> <new_project_name>

进阶

1.项目配置文件路径随心玩
 眼利的同学可能会发现当我们输入mux n demo后创建的配置文件首行为# ~/.tmuxinator/demo.yml,这个正是demo这个项目配置文件的路径。也就是说默认情况下项目配置将保存在~/.tmuxinator/下,并以项目名称.yml作为文件名。这样我们就能在任意目录下通过命令mux <project_name>打开项目了。
 但一旦误删了项目配置那么就要重新设置了,能不能把它也挪到项目中通过版本管理器(git etc.)作保障呢?必须可以的哦!

# 假设项目目录为~/repos/demo/
$ mv ~/.tmuxinator/demo.yml ~/repos/demo/.tmuxinator.yml &&
ln -s ~/repos/demo/.tmuxinator.yml ~/.tmuxinator/demo.yml

 那么除了通过mux <project_name>外,当pwd为项目目录时,直接输入mux也会打开当前项目。而且可以通过mux的其他命令来管理项目配置文件。
 当下次从版本管理器下载项目后,直接执行

$ ln -s ~/repos/demo/.tmuxinator.yml ~/.tmuxinator/demo.yml

2.引入变量到项目配置文件中
 参数形式

# ~/.tmuxinator/demo.yml
name: demo
root: ~/<%= @args[0] %>

.........

调用mux demo args0 args1
 键值对形式

# ~/.tmuxinator/demo.yml
name: demo
root: ~/<%= @settings["ws"] %>

.........

调用mux demo ws="repos/demo/"
 环境变量

# ~/.tmuxinator/demo.yml
name: demo
root: ~/<%= ENV["ws"] %>

.........

调用set $ws="repos/demo/" && mux demo

3.设置开发环境上下文
 在项目配置文件中加入pre_window配置项。
示例:

name: demo
root: ~/repos/demo
pre_window: nvm use 4

总结

 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/6057845.html ^_^肥仔John

时间: 2024-11-05 20:47:56

打造高效前端工作环境-tmuxinator的相关文章

打造高效前端工作环境 - 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个窗格; 窗

高效MacBook工作环境配置

本文记录MacBook工作环境配置过程,供新入手或觉得MacBook比较难用的同学参考. 欢迎关注本人的微信公众号:高效程序员,第一时间获取高效的工作方式和编程技巧. 1. 硬件提升 笔记本电脑的特点是携带方便,缺点是屏幕太小,因此你首先需要再搞一个外接显示器,多一个屏幕会大大减少你切换应用程序的次数,显著提升你的工作效率,如果你资金宽裕,可以买个机械键盘和无线鼠标,进一步提升工作效率. 2. 系统设置 2.1 将功能键(F1-F12)设置为标准的功能键 MacBook键盘最上面一排的功能键(F

Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境

我们开发安卓大多是使用Eclipse和安卓SDK中自带的安卓模拟器.当然,Google早就推出了自己的安卓开发环境--Android studio,在不久前,Google发布了Android Studio 1.0,个人感觉使用起来还是不错的.之前下载过一些Android studio的早期版本,但是都因为"网络问题"而安装失败,无奈删除.而这一次,Android studio 1.0下载后,不需要再联网下载东西了,直接解压就可以使用.    一.Android Studio 1.0.1

如何打造一个令人愉悦的前端开发环境(一)

文章来源 最近几年,前端发展越来越迅速,各种萌新加入了前端这个大家庭,大有赶IOS.超Android的趋势呀!同时,萌新们提出了各种前端工作问题,除了最基础的html.css.js三板斧之外,最让人头疼的应该是关于环境的配置问题,所以以环境作为切入点,开始一系列的前端开发环境配置文章. 主要会涉及到打包.构建.编程工具.debug等等前端环境,以及前后端分离.Nodejs中间层使用伸展面. 工欲善其事必先利其器 以编程工具而言WebStorm.sublime.Atom.VS Code.Brack

存储虚拟化打造高效可靠云存储

存储虚拟化作为实现云存储平台的一项基本技术,占有了不可或缺的技术地位.目前,随着世界各地的大型数据中心的不断涌现,存储虚拟化技术的应用更是受到广大存储用户的青睐. 到底存储虚拟化能为云存储平台的搭建带来怎样的效益呢?下面我们就来揭开存储虚拟化的面纱,看看它是如何打造高效可靠云存储平台的. 大幅度提高硬件资源的使用效率 存储虚拟化技术充分实现了存储资源的异构整合.每年设备淘汰更新换代都会造成大量硬件设备的浪费,而且高昂的新设备采购成本无疑也成为用户面临的难题. 存储虚拟化整合异构平台,充分利用原有

打造高效店长:管好自己带好团队

"开不开店看老板,赚不赚钱看店长".门店店长是门店经营管理的核心,门店与门店的竞争很大一部分就是门店店长之间的竞争. 但店长要做的事太全了:既要把握市场一线,上传下达,又要带队作战,完成销售目标:既要维护好和顾客的关系,又要培养新人,处理好团队内部的关系:既要灵活调整经营策略,又要保证门店资产的安全-- 如何打造高效店长?我们认为,重在管理--管好自己,带好团队. 自我管理成就优秀店长 文/左立志 李菲是某品牌服装北京地区的一个门店的店长,对于刚刚从门店主管升为店长的她,面对着公司每月

善用百度统计,打造高效竞价

由于互联网的普及,百度的火热,以致我们无论是日常生活亦或工作中,在遇到问题的时候总能想起这么一句:"百度一下,你就知道". 由于网民对百度的火热关注,百度竞价推广也成为近年最为火热的网络营销形式,越来越多的企业网站投身于百度竞价当中,是越来越多了,可是否都懂得如何去优化百度竞价推广么?对此笔者与大家一起分享如何通过百度统计从而打造高效竞价. 百度统计是百度推出的网站流量分析工具,对于百度竞价推广而言,这一款工具可谓异常重要,因为有了这一工具,百度竞价推广的优化才更有方向. 竞价时段优化

浅谈打造高效网站排名需做好的五大要点

在网站优化过程中,同类型的网站肯定会一个排名高一个排名高,而且即使是使用同样的优化方法也一样会出现排名高低之分.然而对于站长而言,什么样的标准才是衡量网站优化方案质量的主要指标呢?站长在优化过程中如何确定自己的优化方法是否合适,得到的优化效果是否跟预想的相差不大.这一切都是取决于网站优化的质量如何了.一个高质量的优化方法得到的效果肯定是非常好的,那么咱们应该怎么打造高效的网站排名呢?今天笔者主要以这个为主题来分享一些心得. 一.标题的设置   在网站优化过程中,标题的设置是否利于优化则是第一个影

《ADOBE PHOTOSHOP CS5标准培训教材》—第1课1.2节Photoshop的内部工作环境

1.2 Photoshop的内部工作环境 ADOBE PHOTOSHOP CS5标准培训教材 为了更高效地在Photoshop中工作,熟悉它的工作环境是必须的.在这一节中,将了解Photoshop的工具及面板,并学会如何定制工作环境:了解快捷键的用法.浏览命令及导航器的使用:了解与图像有关的信息:了解度量工具.标尺.参考线和网格对精确操作图像的重要性:掌握如何利用Photoshop提供的帮助资源和在线帮助. 启动Photoshop后,打开任意一幅图像,都可以看到Photoshop的工作环境(见图