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

vscode 可以不同场景启用不同扩展吗?

  •  
  •   kongkongye ·
    kongkongye · 321 天前 · 3964 次点击
    这是一个创建于 321 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于 vscode 比较通用,多个不同的场景都会用到,比如开发 python ,lua ,js 等,在不同场景下想使用不同的扩展,比如开发 lua 时启用 lua 那套扩展,其他场景下启用 lua 相关扩展不是浪费内存资源吗,却发现 vscode 的软件设计好像不是这样子的,那如果用的场景多了,岂不是装满了各种扩展,软件里各种图表一堆,每次却只需要用到一小部分。

    我想能不能在 docker 里启用 vscode server ,然后 server 端指定一套扩展,vscode 连到哪个 server 就启用哪套扩展,但好像行不通,大家有啥建议吗?

    26 条回复    2022-08-15 22:10:10 +08:00
    sarices
        1
    sarices  
       321 天前
    可以按照工作区禁用扩展
    gzyguy
        2
    gzyguy  
       321 天前 via iPhone
    可以控制扩展工作区可用。
    Teragion
        3
    Teragion  
       321 天前
    可以进工作区之后右键单个扩展选择 Enable/Disable (Workspace)
    liuzhaowei55
        4
    liuzhaowei55  
       321 天前 via iPhone   ❤️ 1
    拓展可以直接安装到指定工作区或者项目中
    kongkongye
        5
    kongkongye  
    OP
       321 天前
    @Teragion 这个工作区禁用启用扩展功能我是知道的,但这样实际操作起来还是挺麻烦的。
    Teragion
        6
    Teragion  
       321 天前
    @kongkongye 为什么麻烦?这个设置应该是永久保存到工作区的,新项目处理一次就可以了。还是说你想不同终端连到 server 自动设置?
    kongkongye
        7
    kongkongye  
    OP
       321 天前
    我都恨不得本地装多个 vscode ,一个改名叫 vscode-js ,一个改名叫 vscode-python ,不同的 vscode 点开就是不同的扩展集,这样一个 vscode 我可以当作不同的 ide 来用,而不是所有扩展都装一个 ide 里面。
    ragnaroks
        8
    ragnaroks  
       321 天前
    这种需求可以用多个容器实例来解决,不同的环境装不同的插件
    houshengzi
        9
    houshengzi  
       321 天前   ❤️ 2
    我用 Extension Manager 创建自己的扩展包,不同开发语言切换不同的扩展包
    MengiNo
        10
    MengiNo  
       321 天前 via iPhone
    @kongkongye 既然可以使用容器,建议每个项目建立一个容器。等于全部在容器内开发,插件装在容器内跟着容器走。这样可以通过 devcontainer.json 文件控制各个容器内装不同的扩展,也方便迁移。
    kongkongye
        11
    kongkongye  
    OP
       321 天前
    @houshengzi 这个扩展用的人好少,是你自己开发的?我想要的基本就是这个扩展的功能。如果 vscode 后续官方更新能直接支持这种功能就更好了。
    kongkongye
        12
    kongkongye  
    OP
       321 天前
    @MengiNo 我试试 docker 这个开发环境功能
    houshengzi
        13
    houshengzi  
       321 天前
    @kongkongye 不是我开发的,我也是偶然发现这个扩展。它基本满足我切换不同语言对应扩展包的需求
    fpure
        14
    fpure  
       321 天前
    我也有同样的需求,希望 vscode 出一个多租户的方案,不是 workspace😂
    witherzuo
        15
    witherzuo  
       321 天前
    VS Code 在最新的 Insiders 内部预览版中新增了一个“设置配置”的实验性功能,目前需要在设置中手动打开才能体验,看功能描述应该可以符合你的需求😂

    https://code.visualstudio.com/updates/v1_69#_settings-profiles
    Sod
        16
    Sod  
       321 天前   ❤️ 1
    根据我粗浅的 VSCode 插件开发经验,插件是有"Activation Events"这个属性的,插件开发的时候可以设置。这个属性的作用就是决定一个插件什么时候激活,只有符合设置的条件,比如打开了 xx 类型文件、处于 xx 视图的时候,对应插件才会激活。并不是你安装了一个插件,每次打开 VSCode ,这个插件就直接激活了,没有激活的插件应该是不占用内存的。

    "Activation Events"属性你可以在每个插件详情页的"Feature Contributions"页面拉到底看到,都是写明了的。
    changnet
        17
    changnet  
       321 天前
    语言相关的,没有打开对应的文件,那个插件是不会激活的。比如你装了一个 lua 插件,通常是需要打开 lua 文件才会激活这个插件的,除非那个插件的作者没写好,直接在打开 vscode 的时候就激活了

    不是语言相关的,暂时不知道要怎么弄
    CodeCodeStudy
        18
    CodeCodeStudy  
       321 天前
    @kongkongye #7 可以修改成 portable 版本的,下载 zip ,在根目录下新建 data 目录即可,可以把可执行文件 Coder.exe 修改其他文件名,这样在任务管理器就可以区分不同的进程了

    官方文档

    https://code.visualstudio.com/docs/editor/portable
    stoluoyu
        19
    stoluoyu  
       321 天前
    可以在项目下搞个 .vscode 文件夹试试比如: https://github.com/vueuse/vueuse/tree/main/.vscode
    stoluoyu
        20
    stoluoyu  
       321 天前
    然后我查了下,找到个插件 https://marketplace.visualstudio.com/items?itemName=ireknazm.vscode-presets 可以保存 workspace 的设置
    Curtion
        21
    Curtion  
       321 天前
    其实扩展有这些 API 的,只有到检测到加载相应的文件时才会激活扩展,即使你装了 python 扩展,只要不打开 py 文件,python 的扩展就不会启动。 如果嫌扩展不按照这种流程工作,可以用工作区,其实工作区唯一的毛病就是不会同步,否则就完美了
    jason94
        22
    jason94  
       321 天前
    可以试试我之前写的工具,创建独立的用户文件夹,实现插件的隔离。
    https://github.com/zenghongtu/multi-vscode-opener

    `npx multi-vscode-opener` 直接使用
    TravisMtg
        23
    TravisMtg  
       321 天前 via iPhone
    之前有相同的需求想用配置文件启用插件,在 github 上找到了有别人提的 issue ,open 很多年了官方还是没做出来
    yolee599
        24
    yolee599  
       321 天前 via Android
    我也有这样的需求,即使是每次打开 vscode 的时候手动选择定义好的插件方案也行啊
    YuTengjing
        25
    YuTengjing  
       321 天前
    kouhe3
        26
    kouhe3  
       295 天前
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2335 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 16:02 · PVG 00:02 · LAX 09:02 · JFK 12:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.