V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Chuckle
V2EX  ›  Visual Studio Code

找一个 VSCode 插件,管理各种脚本

  •  
  •   Chuckle ·
    qxchuckle · 36 天前 · 3181 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先说痛点
    本地写了一些脚本,比如扫代码找依赖、接口、构建测试之类的,每次用都比较麻烦,把脚本拷贝到项目里执行,要不就得把脚本改造成交互式的,允许输入工程更目录,但这么多脚本,找到执行起来,再复制下根目录路径也不太方便。

    所以需要一个统一管理脚本的东西,有没有一个 VSCode 插件可以存储一些脚本,快速在当前项目下执行(或选择项目下的文件夹),命令类似 package.json 里那样声明。
    47 条回复    2025-08-07 10:23:54 +08:00
    skiy
        1
    skiy  
       36 天前
    管理脚手架的?我就是想要这种。比如如果我开发 python 环境,则帮我把 pyproject.toml 文件中的一些基本信息参数补全,添加一个 .github/ CI 文件之类的。
    nativeBoy
        2
    nativeBoy  
       36 天前   ❤️ 1
    jetbrains 里的 markdown 里,可以在代码块里设置 shell 后,直接点击执行
    AuroraTwinkle
        3
    AuroraTwinkle  
       36 天前
    同求
    infun
        4
    infun  
       36 天前
    自带的 jupyter notebook 就可以吧
    subprocess
    或者 %%bash
    alleluya
        5
    alleluya  
       36 天前
    是 snippets 么?
    Chuckle
        6
    Chuckle  
    OP
       36 天前
    @infun
    @nativeBoy 主要是需要独立于项目之外,因为很多项目都需要这些脚本,想有一个统一的管理地方,并能够快速在项目根目录执行,用 markdown 、jupyter 就得把脚本扔项目里面了,一个个 cv 一遍又一遍
    Chuckle
        7
    Chuckle  
    OP
       36 天前
    @skiy 差不多,也有这种需求,快速注入一些配置到当前打开的项目。还有本地跑项目的时候,想先修改一下配置,开启一些实验性功能、加点构建环节,再跑,这种修改也不适合推到 git 给所有人用,所以脚本还得跑完之后自动恢复原来的配置。脚本倒是写好了,但是现在就是执行起来麻烦。
    Chuckle
        8
    Chuckle  
    OP
       36 天前
    或者这个插件该怎么设计好,没有就搓一个吧
    Chuckle
        9
    Chuckle  
    OP
       36 天前
    @alleluya 代码片段不适合,这些脚本是一个或者多个文件的,首先有个统一的地方存,其次可以在一个面板中快速在当前打开的项目路径下执行(或者弹窗选子路径)
    absx
        10
    absx  
       36 天前
    你这种需求正常都是脚本里读 current dir 来处理,不是读相对于脚本的路径。建议改造脚本
    Twelveeee
        11
    Twelveeee  
       36 天前
    所有脚本塞一块,编译成二进制文件,
    执行的时候就 ./aaa run buildTest

    这样?
    Chuckle
        12
    Chuckle  
    OP
       36 天前
    @absx 脚本里现在读的就是 cwd ,命令行的路径,主要问题是怎么管理和快速执行
    AX5N
        13
    AX5N  
       36 天前
    你开发的时候能直接使用 ping 这样的命令吗?
    为什么可以?照着这个思路做不就行了?
    absx
        14
    absx  
       36 天前
    @Chuckle 那就随便建个文件夹加 PATH ,脚本全部放里面呗?
    absx
        15
    absx  
       36 天前
    没太看懂需求
    OneLiteCore
        16
    OneLiteCore  
       36 天前
    总算找到有和我同样需求的人了,不容易啊,T_T 。先来说下我的解决方案:

    1. 创建一个你自己的 scripts 目录用来存放所有脚本,可以像代码一样存 git 方便跨设备使用
    2. 脚本全部使用 python ,并且添加到 PATH 里,这样可以全平台全路径使用
    3. 在项目根目录创建一个 project.json ,在创建 scripts/lib/project.py 的库用来读取 “$cwd/project.json”

    这个是准备工作,之后看你自己的开发需求,比如搞 docker 打包镜像:

    5. 在项目根目录的 project.json 里写 { "docker": "相对路径" },用来指明 "$cwd/相对路径/" 路径是
    6. 写一个 scripts/maker.py ,里面调用 scripts/lib/project.py 读取 project.json
    7. 只要目录下存在着 project.json 并且里面存在 "docker" 的 key ,就判定脚本执行路径下确实是一个 docker 工程
    8. 在 py 里面执行 "docker build -t 目录名称_时间戳 $cwd/相对路径/"
    9. 之后只要在命令行里敲一个 maker 就可以处理所有 docker build 的命令
    10. 后续还有些别的比如把镜像上传到某个 VPS 的话也可以自动化

    如此,所有的脚本可以统一管理,每个项目都只要管理自己的配置既 project.json 即可。
    micate
        17
    micate  
       36 天前
    AI 最适合写这种插件了,搞一个试试看
    OneLiteCore
        18
    OneLiteCore  
       36 天前
    脚本是跨操作系统并、跨项目并且是跨 IDE 的,在这套思路下面项目内部其实不应该放任何脚本,只维护 project.json 配置。

    如果想要更自由点的话可以让 scripts/lib/project.py 从当前路径一路往上直到找到一个 project.json ,这样在项目的子目录下也可以执行全局脚本操作。
    OneLiteCore
        19
    OneLiteCore  
       36 天前
    Windows 可以使用 Windows Terminal ,MacOS 有 iTerm2 ,Linux 有 Guake ,这些都支持快速呼出一个命令行。

    如果使用 IDE 的话无论是 vscode 还是 idea ,都有在项目根目录打开 terminal 的功能,这样连项目路径都可以省略。
    Al0rid4l
        20
    Al0rid4l  
       36 天前
    不必非得是 vsc 插件吧, 可以考虑这两个

    https://github.com/denisidoro/navi
    https://github.com/knqyf263/pet
    ruoxie
        21
    ruoxie  
       36 天前
    https://marketplace.visualstudio.com/items?itemName=wjkang.lowcode

    如果你的脚本是 nodejs ,这个插件可以满足你,当然也可以在 nodejs 里再去调用别的语言脚本。

    这是管理脚本的方式

    https://github.com/lowcode-scaffold/lowcode-materials/tree/master/materials/snippets

    脚本还可以通过 uTools 快速筛选执行
    Danswerme
        22
    Danswerme  
       36 天前
    可以把脚本路径放到环境变量里,然后读取执行命令的目录/传入当前路径来执行
    wupher
        23
    wupher  
       36 天前
    - github gists

    - vsc , IDEA, Pycharm 都有插件支持

    - 有些 terminal 也有类似 Snippets 支持,如 Temius, Warp

    - gitee 也有类似 "代码片段“
    kebamt
        24
    kebamt  
       36 天前
    Gistpad 插件?
    COW
        25
    COW  
       36 天前
    写个 Makefile 模板, 封装各种脚本和命令,并放在 git 仓库里作为模板仓库,新建 git 仓库时通过模板仓库初始化
    coldle
        26
    coldle  
       36 天前
    感觉用不到插件呀,随便搓个指令 a 放到 PATH 里,效果就是 list 目录 b 的脚本,支持模糊搜索和上下翻页,选定后以执行指令 a 的目录 c 为 cwd 运行脚本,至于脚本本身是 bash 还是 python 啥的都无所谓,你自己改指令就行

    ~~这指令放 ai 里可能要不了两分钟就些完了~~

    为了增强说服力还是放个 demo 如下,只筛选 chmod +x 的可执行文件。后续若是想让配置独立到指令之外,或者运行时做点啥操作,都是 ai 专精领域

    ```bash
    #!/bin/bash
    selected=$(find "$HOME/scripts" -maxdepth 1 -type f -executable | fzf)
    [ -n "$selected" ] && "$selected"
    ```
    xingheng
        27
    xingheng  
       36 天前
    https://just.systems/
    shihira
        28
    shihira  
       36 天前 via Android
    试一下用 windmill.dev ,或者类似的 workflow engine/orchestration platform.

    就 windmill 而言,脚本的管理和组合很方便,脚本的入参可以保存成预设一键填写,甚至可以上传文件作为参数。一些大块的参数组合可以存成 resource 。
    DefoliationM
        29
    DefoliationM  
       36 天前
    你需要 terraform 。
    archean
        30
    archean  
       36 天前
    VSCode 自带的 Task 功能不行吗?
    hyperbin
        31
    hyperbin  
       36 天前 via Android
    我是弄了个阿里云小主机,然后写了个 update 脚本从服务端下载 scripts.tgz 并解压到指定目录
    liaozzzzzz
        32
    liaozzzzzz  
       36 天前 via iPhone
    那就做成脚手架呗,全部用命令行跑就是了
    dacapoday
        33
    dacapoday  
       36 天前
    这不是 shell 的工作,为什么要集成到编辑器里?以后换新的编辑器怎么办,shell 可是死技术,不会再变了。
    AnkhSpirit
        35
    AnkhSpirit  
       36 天前
    脚本命令写成 powershell 文件,全放在一个目录里,然后把这个目录放到环境变量 path 里,就可以在命令行用文件名执行
    txhwind
        36
    txhwind  
       36 天前
    脚本目录加到 PATH 里就行吧,PATH 本来就用来干这个的
    Chuckle
        37
    Chuckle  
    OP
       35 天前
    @ruoxie 这个插件不错啊,看起来是能满足我需求的,llm 和代码片段暂时用不到,执行纯 node 脚本就够了
    Chuckle
        38
    Chuckle  
    OP
       35 天前
    @ruoxie 原本想着搞个插件把脚本结构化成命令聚合在面板中方便执行,但这个插件的设计确实惊艳到我了,或许我需要的不只是脚本管理工具,而是一个工作台
    Shatyuka
        39
    Shatyuka  
       35 天前
    想要个 shell 的 jupyter 是吧
    Chuckle
        40
    Chuckle  
    OP
       35 天前
    @ruoxie 但可惜的是,在 mac 中,导入默认区块存在问题,路径报错,cursor 上使用,也有些缺陷。
    yanni199899
        41
    yanni199899  
       35 天前
    不需要插件,直接把脚本做成全局的 cli 就行,比如你写的 nodejs 脚本,就做成类似 vue-cli,pm2 这种全局可执行的脚手架,根据命令行参数调用脚本,`cli scanPort 8080`, `cli build apk`, `cli copy --from src --to ../build`这样,参数可以默认是当前命令行的 pwd(执行目录)

    当然 c#,powershell,python,go,rust 都可以这样做,添加参数,做成全局的 cli,添加进 path 就可以执行了
    fgwmlhdkkkw
        42
    fgwmlhdkkkw  
       35 天前 via Android
    https://github.com/zzztttkkk/px
    我自己用的,,
    Chuckle
        43
    Chuckle  
    OP
       35 天前
    @yanni199899 cli 问题就是,加各种小脚本麻烦,还有命令太多记不过来 qaq ,不过确实可以先搞个 cli ,再插件可视化出来
    RainyH2O
        44
    RainyH2O  
       35 天前
    前面有人提过了,VSCode 的 Profile 自带 Tasks 和 Snippets 功能。加上可以使用 GitHub 账号多端同步 Profile ,Profile 可以直接导出到 Gist ,再用 Gist 链接导入。不同场景你多建立几个 Profile 就行了,多端同步 Profile 使用设置同步,持久化就导出导入 Gist ,两个同步策略协作减少单点故障丢失文件。除了 GUI 支持弱一点已经很完备了。
    ruoxie
        45
    ruoxie  
       35 天前
    @Chuckle 你是不是一个窗口里打开了两个项目
    0x5c0f
        46
    0x5c0f  
       35 天前
    就是,也许、大概、或许有没有这么一种可能, vscode 中的那个任务就是干这个事情的
    rrfeng
        47
    rrfeng  
       35 天前
    为啥要插件,打开 terminal 直接运行你的命令不行吗……
    命令放到目录里加到 PATH 完事。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 06:50 · PVG 14:50 · LAX 23:50 · JFK 02:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.