推荐一个工作区管理小工具.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打开指定文件/文件夹了,类似的我们可以创建任何快捷命令来打开我们想使用的软件。


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


相关文章
|
算法 JavaScript 前端开发
彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法(下)
至于分发?我们可以参考一下市面上已有的一些概念做一下对比,下面是笼统的一个网络服务器的TPS预估值,也就是说彩票服务器在1秒内可以处理的最大请求数:
|
Java 开发工具 开发者
IDEA中配置类与方法注释模板
IDEA是当前使用最为广泛的集成开发工具之一,其功能的多样性与便捷性为开发者在开发过程提供了很多方便。 我们在用IDEA创建java类和方法的时候,可以自动生成文档注释,便于代码的阅读与理解。
4312 1
IDEA中配置类与方法注释模板
|
4月前
|
架构师 Java 中间件
Java程序员的职业规划:从技术深度到业务理解的转型之路
Java开发是一个成熟的职业领域,每年有数十万人进入这个行业,但能够持续成长、保持竞争力的却不多。
508 2
|
6月前
|
人工智能 自然语言处理 IDE
Claude Code:把 AI 从“聊天工具”推进到可执行 Agent 系统
Claude Code 是Anthropic推出的本地化AI执行代理,非聊天工具,而是可驻留项目、读写文件、调用工具的Agent运行时。它以多Agent协作、MCP工具扩展和工程化生命周期管理为核心,将AI从“提供建议”升级为“参与执行”,重塑软件开发与个人工作流。
|
安全 Java API
Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
近期,我们欣喜地宣布 Nacos 3.0 的第一个版本 Nacos 3.0-ALPHA 已经发布。Nacos 3.0 的目标是在 2.0 的基础上,进一步优化安全性、易用性和标准化。同时,我们将引入更多功能,帮助用户在分布式协调、AI 大模型、云原生等多种场景中更好地使用 Nacos,以提升其广泛适应性。
892 137
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
2328 30
|
存储 API 数据安全/隐私保护
web录屏方案实现
【10月更文挑战第9天】
833 138
|
Ubuntu Linux 网络安全
1. Linux环境搭建及创建共享文件的方法
1. Linux环境搭建及创建共享文件的方法
661 1
|
人工智能 自然语言处理 搜索推荐
师资培训|AIGC教学评估体系构建与教学策略优化-某教育科技集团
近日,TsingtaoAI为某教育科技集团交付AIGC赋能教师教学创新课程,本课程围绕国内外最新AIGC技术的发展现状与具体应用场景,深入探讨如何借助智能分析、多模态交互和自动化数据处理,为教学过程“插上”数字化翅膀。课程不仅聚焦于工具与平台的实操演练,还呈现了丰富的本土高校成功案例与落地方法,让参加者充分掌握从课堂管理、作业布置、考试测评到学生个性化指导的全流程智能化改进思路。
897 12
|
边缘计算 Prometheus 监控
边缘GPU节点的可观测原理和最佳实践
介绍ACK Edge接入的边缘GPU节点的可观测原理和最佳实践。