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

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

  •  
  •   kongkongye ·
    kongkongye · 2022-07-20 08:41:26 +08:00 · 5978 次点击
    这是一个创建于 851 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    官方文档

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

    `npx multi-vscode-opener` 直接使用
    TravisMtg
        23
    TravisMtg  
       2022-07-20 11:57:29 +08:00 via iPhone
    之前有相同的需求想用配置文件启用插件,在 github 上找到了有别人提的 issue ,open 很多年了官方还是没做出来
    yolee599
        24
    yolee599  
       2022-07-20 12:42:13 +08:00 via Android
    我也有这样的需求,即使是每次打开 vscode 的时候手动选择定义好的插件方案也行啊
    YuTengjing
        25
    YuTengjing  
       2022-07-20 17:16:52 +08:00
    kouhe3
        26
    kouhe3  
       2022-08-15 22:10:10 +08:00
    shuimuyian
        27
    shuimuyian  
       228 天前 via iPhone
    确实,激活事件可以按条件激活插件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2743 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:36 · PVG 17:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.