起因

工作中的业务线比较复杂,每个业务线对应一个我的项目,常常会遇到多个需要并行开发或者在多个我的项目中排查问题的状况,须要频繁在不同我的项目之间切换。

日常接触到各种新工具本人也会上手试一下,有时候钻研到一半可能会被其余事件中断导致遗记。

所以编写了一个简略的小工具满足本人的需要:

  • 能够记录工作区目录,减少和删除
  • 能够间接通过VS Code关上工作区进行编辑

小工具介绍

这个小工具应用了一年多,在大部分场景下满足我本人的需要,也进步了开发效率。小工具应用nodejs编写,应用了inquire.js来做交互提醒,通过高低键抉择,回车则应用VS Code关上。应用应用成果:

其余命令(recent能够简写为: r):

  • recent add + dirname (绝对地址或相对地址)
  • recent del + dirname
  • recent ls 查看已增加的所有工作区数据
  • recent ls + str 依据输出的内容筛选工作区数据
  • recent + str 依据输出内容进行匹配并关上

具体应用

在环境变量中增加code命令

在VS Code中应用快捷键 Command/ + shift + P 关上命令行面板,执行装置code的shell命令。

装置实现后就能够在命令行中通过code .在VS Code中关上文件或文件夹。

link recent到全局命令

因为性能比较简单,并没有封装成npm包,代码放在了GitHub: tools

clone之后执行:

npm install && npm link

就能够通过recent(或简写r)来管理工作区了,会调用code命令在VS Code中关上工作区。

其余

装置的code命令做了什么操作
# 查看code命令地址which code# 查看软连贯指向ls -a /usr/local/bin/code

找到具体的文件之后,发现是一个shell脚本:

#!/usr/bin/env bash## Copyright (c) Microsoft Corporation. All rights reserved.# Licensed under the MIT License. See License.txt in the project root for license information.function realpath() { python -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0"; }CONTENTS="$(dirname "$(dirname "$(dirname "$(dirname "$(realpath "$0")")")")")"ELECTRON="$CONTENTS/MacOS/Electron"CLI="$CONTENTS/Resources/app/out/cli.js"ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "$@"exit $?

在MacOS下查看了一下:

$ELECTRON/Applications/Visual Studio Code.app/Contents/MacOS/Electron

$CLI/Applications/Visual Studio Code.app/Contents/Resources/app/out/cli.js

$@就是接管到的文件夹或文件地址

open命令

在MacOS下,咱们能够通过open -a来指定的利用并传参:

# 应用Typora关上文件或文件夹open -a Typora README.md # 应用Chrome关上文件或文件夹open -a open -a Google\ Chrome cat.pngopen -a open -a Google\ Chrome .

默认状况下,open命令会应用文件的默认应用程序关上。如果文件是 URL 模式,则文件将作为 URL 关上:

# 目录默认应用Finder关上open .# html会用默认浏览器关上open index.htmls

通过-a参数能够指定应用程序来关上文件或目录,其余反对的参数能够通过open -h查看。

为Open命令创立快捷命令

通过Open命令咱们能够应用指定的程序关上指定文件或目录,然而open命令关上比拟繁琐,须要输出残缺的程序名称。

如果想间接通过typora关上markdown文件,咱们能够为Open创立快捷命令。

Node.js版本:

#!/usr/bin/env node// typora.jsconst { spawn } = require('child_process')const params = process.argv.slice(2)spawn('open', ['-a', 'Typora', ...params]);

创立软连贯

  • 间接创立软连贯

    # 增加可执行权限chmod +x ./recent.js# 链接到全局  ln -s 源文件绝对路径 本地环境变量ln -s /User/xxx/typora.js /usr/local/bin/typora 
  • 或者放到独自的目录,在package.json中指定

    {    "bin":{    "typora":"./typora.js",    "t":"./typora.js"  } }

    目录执行link,会主动增加可执行权限并增加软连贯到本地环境变量

    npm link

咱们就能够在命令行中应用typora来通过Typora关上指定文件/文件夹了,相似的咱们能够创立任何快捷命令来关上咱们想应用的软件。