共计 2184 个字符,预计需要花费 6 分钟才能阅读完成。
起因
工作中的业务线比较复杂,每个业务线对应一个我的项目,常常会遇到多个需要并行开发或者在多个我的项目中排查问题的状况,须要频繁在不同我的项目之间切换。
日常接触到各种新工具本人也会上手试一下,有时候钻研到一半可能会被其余事件中断导致遗记。
所以编写了一个简略的小工具满足本人的需要:
- 能够记录工作区目录,减少和删除
- 能够间接通过 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.png
open -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.js
const {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 关上指定文件 / 文件夹了,相似的咱们能够创立任何快捷命令来关上咱们想应用的软件。