kongkongye
V2EX  ›  Visual Studio Code

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

By kongkongye at 2022 年 7 月 20 日 · 8027 次点击

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

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

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

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

官方文档

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

`npx multi-vscode-opener` 直接使用
TravisMtg
   23
TravisMtg  
   2022 年 7 月 20 日 via iPhone
之前有相同的需求想用配置文件启用插件,在 github 上找到了有别人提的 issue ,open 很多年了官方还是没做出来
yolee599
   24
yolee599  
   2022 年 7 月 20 日 via Android
我也有这样的需求,即使是每次打开 vscode 的时候手动选择定义好的插件方案也行啊
YuTengjing
   25
YuTengjing  
   2022 年 7 月 20 日
kouhe3
   26
kouhe3  
   2022 年 8 月 15 日
shuimuyian
   27
shuimuyian  
   2024 年 4 月 3 日 via iPhone
确实,激活事件可以按条件激活插件
© 2026 V2EX · 52ms · 3.9.8.5