由于 vscode 比较通用,多个不同的场景都会用到,比如开发 python ,lua ,js 等,在不同场景下想使用不同的扩展,比如开发 lua 时启用 lua 那套扩展,其他场景下启用 lua 相关扩展不是浪费内存资源吗,却发现 vscode 的软件设计好像不是这样子的,那如果用的场景多了,岂不是装满了各种扩展,软件里各种图表一堆,每次却只需要用到一小部分。
我想能不能在 docker 里启用 vscode server ,然后 server 端指定一套扩展,vscode 连到哪个 server 就启用哪套扩展,但好像行不通,大家有啥建议吗?
1
sarices 2022-07-20 08:44:58 +08:00
可以按照工作区禁用扩展
|
2
gzyguy 2022-07-20 08:45:39 +08:00 via iPhone
可以控制扩展工作区可用。
|
3
Teragion 2022-07-20 08:46:30 +08:00
可以进工作区之后右键单个扩展选择 Enable/Disable (Workspace)
|
4
liuzhaowei55 2022-07-20 08:46:39 +08:00 via iPhone 1
拓展可以直接安装到指定工作区或者项目中
|
5
kongkongye OP @Teragion 这个工作区禁用启用扩展功能我是知道的,但这样实际操作起来还是挺麻烦的。
|
6
Teragion 2022-07-20 09:04:35 +08:00
@kongkongye 为什么麻烦?这个设置应该是永久保存到工作区的,新项目处理一次就可以了。还是说你想不同终端连到 server 自动设置?
|
7
kongkongye OP 我都恨不得本地装多个 vscode ,一个改名叫 vscode-js ,一个改名叫 vscode-python ,不同的 vscode 点开就是不同的扩展集,这样一个 vscode 我可以当作不同的 ide 来用,而不是所有扩展都装一个 ide 里面。
|
8
ragnaroks 2022-07-20 09:07:22 +08:00
这种需求可以用多个容器实例来解决,不同的环境装不同的插件
|
9
houshengzi 2022-07-20 09:07:59 +08:00 2
我用 Extension Manager 创建自己的扩展包,不同开发语言切换不同的扩展包
|
10
MengiNo 2022-07-20 09:11:17 +08:00 via iPhone
@kongkongye 既然可以使用容器,建议每个项目建立一个容器。等于全部在容器内开发,插件装在容器内跟着容器走。这样可以通过 devcontainer.json 文件控制各个容器内装不同的扩展,也方便迁移。
|
11
kongkongye OP @houshengzi 这个扩展用的人好少,是你自己开发的?我想要的基本就是这个扩展的功能。如果 vscode 后续官方更新能直接支持这种功能就更好了。
|
12
kongkongye OP @MengiNo 我试试 docker 这个开发环境功能
|
13
houshengzi 2022-07-20 09:23:09 +08:00
@kongkongye 不是我开发的,我也是偶然发现这个扩展。它基本满足我切换不同语言对应扩展包的需求
|
14
fpure 2022-07-20 09:28:23 +08:00
我也有同样的需求,希望 vscode 出一个多租户的方案,不是 workspace😂
|
15
witherzuo 2022-07-20 09:31:45 +08:00 1
VS Code 在最新的 Insiders 内部预览版中新增了一个“设置配置”的实验性功能,目前需要在设置中手动打开才能体验,看功能描述应该可以符合你的需求😂
https://code.visualstudio.com/updates/v1_69#_settings-profiles |
16
Sod 2022-07-20 09:34:30 +08:00 1
根据我粗浅的 VSCode 插件开发经验,插件是有"Activation Events"这个属性的,插件开发的时候可以设置。这个属性的作用就是决定一个插件什么时候激活,只有符合设置的条件,比如打开了 xx 类型文件、处于 xx 视图的时候,对应插件才会激活。并不是你安装了一个插件,每次打开 VSCode ,这个插件就直接激活了,没有激活的插件应该是不占用内存的。
"Activation Events"属性你可以在每个插件详情页的"Feature Contributions"页面拉到底看到,都是写明了的。 |
17
changnet 2022-07-20 09:34:56 +08:00
语言相关的,没有打开对应的文件,那个插件是不会激活的。比如你装了一个 lua 插件,通常是需要打开 lua 文件才会激活这个插件的,除非那个插件的作者没写好,直接在打开 vscode 的时候就激活了
不是语言相关的,暂时不知道要怎么弄 |
18
CodeCodeStudy 2022-07-20 09:51:44 +08:00
@kongkongye #7 可以修改成 portable 版本的,下载 zip ,在根目录下新建 data 目录即可,可以把可执行文件 Coder.exe 修改其他文件名,这样在任务管理器就可以区分不同的进程了
官方文档 https://code.visualstudio.com/docs/editor/portable |
19
stoluoyu 2022-07-20 09:52:58 +08:00
可以在项目下搞个 .vscode 文件夹试试比如: https://github.com/vueuse/vueuse/tree/main/.vscode
|
20
stoluoyu 2022-07-20 10:04:00 +08:00
然后我查了下,找到个插件 https://marketplace.visualstudio.com/items?itemName=ireknazm.vscode-presets 可以保存 workspace 的设置
|
21
Curtion 2022-07-20 10:09:16 +08:00
其实扩展有这些 API 的,只有到检测到加载相应的文件时才会激活扩展,即使你装了 python 扩展,只要不打开 py 文件,python 的扩展就不会启动。 如果嫌扩展不按照这种流程工作,可以用工作区,其实工作区唯一的毛病就是不会同步,否则就完美了
|
22
jason94 2022-07-20 10:36:44 +08:00
可以试试我之前写的工具,创建独立的用户文件夹,实现插件的隔离。
https://github.com/zenghongtu/multi-vscode-opener `npx multi-vscode-opener` 直接使用 |
23
TravisMtg 2022-07-20 11:57:29 +08:00 via iPhone
之前有相同的需求想用配置文件启用插件,在 github 上找到了有别人提的 issue ,open 很多年了官方还是没做出来
|
24
yolee599 2022-07-20 12:42:13 +08:00 via Android
我也有这样的需求,即使是每次打开 vscode 的时候手动选择定义好的插件方案也行啊
|
25
YuTengjing 2022-07-20 17:16:52 +08:00
|
26
kouhe3 2022-08-15 22:10:10 +08:00
|
27
shuimuyian 238 天前 via iPhone
确实,激活事件可以按条件激活插件
|