推荐一个工作区管理小工具.md

简介: 可以提高工作效率的工作区管理小工具

起因

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

日常接触到各种新工具自己也会上手试一下,有时候研究到一半可能会被其他事情中断导致忘记。

基于对记录和快速编辑的需求,编写了一个简单的小工具:

  • 可以记录工作区目录,增加和删除
  • 可以直接通过VS Code打开工作区进行编辑

小工具介绍

这个小工具使用了一年多,在大部分场景下满足我自己的需求,也提高了开发效率。小工具使用nodejs编写,使用了inquire.js来做交互提示,通过上下键选择,回车则使用VS Code打开。使用使用效果:

recent-demo.gif

其他命令(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 install -g recent-cli


就可以通过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.html


通过-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打开指定文件/文件夹了,类似的我们可以创建任何快捷命令来打开我们想使用的软件。


欢迎关注微信公众号"混沌前端"


相关文章
|
人工智能 数据安全/隐私保护
AIGC作品的版权归谁
【2月更文挑战第13天】AIGC作品的版权归谁
341 1
AIGC作品的版权归谁
|
12月前
|
人工智能 编解码 前端开发
深入了解 Three.js 中的材质与光照
Three.js 是一个强大的 JavaScript 库,用于在浏览器中创建和渲染 3D 场景。它的易用性和灵活性使得开发者能够轻松构建丰富的视觉体验。在 Three.js 中,材质与光照是影响物体外观和场景氛围的关键因素。本文将深入探讨 Three.js 中的材质类型、光源类型、光照模型,以及如何将它们结合以实现逼真的效果。
287 4
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
人工智能
给RAG系统做一次全面体检,亚马逊开源RAGChecker诊断工具
【9月更文挑战第12天】近年来,检索增强生成(RAG)系统因能有效利用外部知识而备受关注,但其评估仍具挑战性。为此,亚马逊AWS AI和上海交大的研究团队提出了RagChecker,这是一种细粒度评估框架,通过主张级别蕴涵检查来诊断RAG系统的检索和生成模块。RagChecker包含整体、诊断检索器和诊断生成器指标,全面评估系统性能。研究表明,RagChecker与人类判断相关性更高,并揭示了RAG架构设计的关键模式。尽管如此,该方法在计算资源和系统可解释性方面仍有局限。
309 3
|
云计算
阿里云短信费用收费价格表
阿里云短信费用收费价格表,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
311 1
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
292 6
|
存储 C语言
C语言实现学生成绩管理系统
C语言实现学生成绩管理系统
567 2
|
开发框架 移动开发 小程序
uniapp实现简单登录注册
uniapp实现简单登录注册
398 0
|
缓存
总线窥探(Bus Snooping)
总线窥探(Bus Snooping)
385 0
|
人工智能 搜索推荐 自动驾驶
使用 AI 工具是否会导致思考能力退化?如何应对?
文本探讨两个问题:使用 AI 工具是否会导致人类的思考能力退化?如何在使用AI工具的同时,保持甚至提高我们的思考能力?
732 0
使用 AI 工具是否会导致思考能力退化?如何应对?