思考:VSCode 的宏观工作原理 快速入门 VSCodium (****)
23个常用的VSCode快捷键(动图演示)> https://www.php.cn/faq/441696.html
VSCodium AppImage 版 使用记录 https://blog.csdn.net/ken2232/article/details/143591323
**** 初步比较:VSCode > pk < VSCodium << 在下面。
特别注意:
- VSCode 会自动将用户的某些信息上传,默认启用了遥测,没有提供关闭的开关,这是不安全的。只是依靠道德来约束一个人、或一个企业只干好事,这是扯蛋的。
- VSCodium 是一个基于微软的 Visual Studio Code(VS Code)的二进制发布版本,但它移除了微软的品牌标识、遥测功能以及特定许可限制。该项目致力于提供一个自由/自由开放源码软件(FLOSS)的替代方案,保持了 VS Code 强大的编辑器特性,而无需担心隐私问题。通过社区驱动的配置,用户可以享受几乎原汁原味的开发体验,同时符合自由软件的理念。原文链接:https://blog.csdn.net/gitblog_00946/article/details/141044665
要点:
- VSCode 宏观工作原理,是快速入门的关键,它其实很简单。但是,在当前的搜索引擎中,似乎搜索不到这类巍峨文章。
- 只要理解了 VSCode 宏观工作机制,那么,再去掌握其具体的用法,就简单多了 ?
-
关于 VSCodium
VSCodium / vscodium https://github.com/VSCodium/vscodium/releases
好像很活跃了:
25.7k stars
213 watching
1.1k forks
同期:
VSCode 165k stars
25.7 / 165 = 15.5%
===================================
思考:VSCode 的宏观工作原理
入口菜单的种类
- VSCode 本身自带了下拉菜单:这是最常用的采用。
- 命令行菜单:通过 Shift + Ctrl + p,可以调出命令行菜单,提示符为 '>'。
用法:> + 命令菜单入口。
命令行菜单的好处
- 可以容纳 N 多个条目的命令行菜单入口。这样就可以让 N 多的程序员来实现 N 多的扩展。
命令行菜单入口的格式
一般表现为:扩展名字:命令行菜单入口名字。
打开如下命令菜单窗口的快捷键 Shift + Ctrl + p 。
理解多场景窗口:由 Shift + Ctrl + p 调出。
屏幕就那么大,需要实现许多的场景菜单,怎么办呢?
由 Shift + Ctrl + p 调出的只是一个只有一行输入的对话,怎样来实现多场景的应用呢?
使用前导提示符 '>' :没有时,显示为项目里面的变量,类等等的东西。有时就显示各种的命令行菜单入口。
不排除在未来,会使用冒号等等的前导符,来实现新的应用场景菜单。
扩展的冲突,由 VSCode 自动给出错误提示信息
当同时安装并启用了同类的扩展时,往往不同的扩展之间,会出现抢占同一个系统?资源,于是就会产生错误?
快捷键的冲突,由 VSCode 自动给出冲突提示信息
VSCode 会检测各个扩展的快捷建的冲突提示,通过提示可以禁止、或修改那些扩展的快捷键。
扩展依赖的缺失、或问题,由 VSCode 自动给出建议
用户自己来决定是否需要安装 VSCode 自动给出建议的依赖安装,或在关闭发生冲突的扩展。
VSCode 的运行环境 内置终端与系统终端的区别 ?
- VSCode 默认是在系统的当前环境之下运行的运行。
- 以下这两种运行方式的不同点在哪里,还不知道啊?
- 通过内置终端中激活 python 的虚拟环境,这样 VSCode 就会自动进入到 py 的虚拟环境中运行了。
- 在系统终端中激活 python 的虚拟环境,再运行 VSCode(运行名字是 code),此时,VSCode 当然就是运行在虚拟环境中了。
需要理解:两个不同的系统终端,是可以运行在不同的系统环境下的。Linux 是多用户操作系统。
比如:
- 一个运行在系统环境之下,另一个运行在 py 虚拟环境之下。
- 一个 Linux 系统,可以同时运行 N 多个的终端。
https://zhuanlan.zhihu.com/p/113222681
在 VSCode 市场,python 扩展的版本,有些旧;或者不是自己需要的
自己在宿主机上安装 python,然后,再在 VSCode 中进行设置,这有些麻烦吧?
先安装在 VSCode 市场的 python 扩展,是安装在宿主机上的。然后,再安装 py 虚拟环境,这样用户就可以在虚拟环境里,安装自己想要的 py 版本了。
python / pip 是自成体系的,py 官方自己本来就有一套包管理系统,还有许多的第三方包管理工具。
虽然 VSCodium 的插件扩展比较少,而且有些版本也旧。但是,像 python 这类的应该,直接采用的是 pypy 的商店,所以采用 VSCodium 是没有影响的。
好处:不会受到遥测控制,没有弹出的各种警告提示之类的窗口。干净,清爽。
缺点:有些扩展的版本旧,且扩展总量不如 VSCode;然而,用户自己真正用到的也不多吧?
试想一下,在工作的场景里 ,时不时的跳出提示,自己多手,或者同事按错了,结果有被安装上了一些其他的插件,结果插件之间又存在冲突,工作又紧张。所以这时干净的 VSCodium 的好处就凸显出来了。
在 VSCode 市场中许多扩展的版本,比扩展作者的官方网站上给出的版本旧
比如:kivy
没有关系的,这时,只要将 VSCode 看成只不过就是一个具有丰富功能的“高级文本编辑器“来使用就好了,不要将它看作是 IDE。当然,通过安装一堆扩展之后,它却是就会变成了 IDE;有些软件公司也会通过对 VSCode 进行改造,变成了自家定义的、专业的 ?IDE 。
再比如:ros 这类 app,是不会、或需要太耗费时间来制作 VS 扩展包了,这类可能就不值得 app 提供者去花费时间了。因此,并不是什么样的 app,都适合制作成 VSCcode 的插件扩展。
VSCodium 的插件扩展,比 VSCode 市场少,有些版本也旧。但是,对于一个稳定开发状态下的用户来说,只要能满足自己就好了。毕竟 25.7k stars 也是很有说服力的吧?
VSCcode 的具体使用方法,这是小节
只需掌握自己使用到的、或会使用到的就可以了。
原生开发的概念,这是基础思想。VSCcode 只不过是一种工具而已。
工具就是工具。
=====================================
初步比较:VSCode > pk < VSCodium
- 两者主要的区别,是在扩展的总量,以及安装/禁用的方法上。
- 采用 VSCodium 的主要诉求,是为了拒绝遥测,不安全啊。
- 在某些场景里,需要考虑安全问题。毕竟在一个连 BB 机和对讲机都能放鞭炮的时代里。
- 当然,在有些场景里,不需要考虑安全问题的。
- 从 github starts 来看:VSCodium 已经占了 25.7 / 165 = 15.5% 的 VSCode 市场,很不错了?
在 github 上,许多的流行软件,还没有这么多数量的 starts. 当 starts 总量占到 vscode 的 50% 以上的时候,可能 vscode 就会感到不舒服了,就要搞搞阵了吧?- 未来估计还会更好?毕竟像 python 这类的市场,以及有些市场,是不需要去做 vscode 扩展的,它们只是将 vscode 当做的功能强大的编辑器来使用。比如:ros 就没有再为 vscode 继续做扩展了,在其市场里只有 ros 的老旧版本。
- VSCode 的扩展,应该是不能直接安装到 VSCodium 中的吧?毕竟商业公司的开源都是目的的,它们之间是竞争关闭,MS 不会允许这种有损、或不符合其利益的现象存在的吧?
1. 有人说可以,但我没有成功安装,Why?:Installing Extensions in VS Codium from VSIX Files https://retiolus.net/posts/installing-extensions-in-vs-codium-from-vsix-files/ https://stackoverflow.com/questions/74672197/how-to-add-extensions-to-vs-codium-open-source-version-from-github-repos
2. 理由见下面。
1. 一些热门的插件,与 VSCode 同步了。
图 一
图 二
搜索插件时,需要注意:点击插件图标之后,要等插件全部下载更新之后,才能在搜索框里输入自己需要搜索的关键字,否则会出现错误终止?好像是搜索本地下载下来的插件信息吧?
2. VSCodium 插件的启用/禁用的功能少
目前 VSCodium 没有正对当前工作区 disable 某个插件的功能。
参见 :
1. 图 一 中的 圈 2 与 圈 4。
2. 目前还没有针对当前工作区禁止插件的功能。可能?应该有其他的扩展也可以实现这个功能的吧?比如:采用有关的 .json 文件来设置,这种方法在 vscode 中早就有了。
3. 可离线安装的 .vsix 文件问题
由于利益关系,从 vscode 官网 > https://marketplace.visualstudio.com 下载的离线 .vsix 文件,可以在 vscode 中离线安装。但是,应该不能安装到 codium 上吧?
VSCodium 的扩展网站(从 codium 编辑器扩展中提供的网址进入): Open VSX Registry
图 一,vscode完全可以将那几个按钮嵌入到 vscode 编辑器的内部,但是,它们却做在网站上了,这样 vscode 编辑器就和该网站捆绑在一起了,编辑器访问扩展,需要指向指定的网站;这也是开源世界为了保护自己利益的一种通常的做法,比如软件的注册码只能通过指定的网站来获取。
如果可以,那么,vscode 就是替人做嫁衣了,这不符合 ms 的利益吧?
3. 一些 MS 专门开发的插件,在 VSCodium 商店没有
如 Pylance。
毕竟 ms 需要搞一些热门性的东西,以吸引用户的麻。
初步结论:时至今日,VSCodium 已经很不错了。
- 除非一定要使用到 VSCode 商店中的某个扩展。如果只是一般用途,VSCodium 已经是一个不错的选择了。
- 2023,目前在 VSCodium 商店中的扩展,还是非常多的。
- 想要拒绝遥测的话,VSCodium是一个非禅不错的选择。界面干净,清酸
- 对于学生场景,使用 VSCode,反正插件多,啥东西都可以尝试一下。对于工作场景,每天都那么忙,足够自己使用就好了,选择 VSCodium 不会被遥测,从而沦为现代大数据的样本,不安全吧?
- 从某种角度上来说,这两个软件可以看作是完全独立的。也就是在电脑的同一个用户下,这两个软件都可以工作,互不相干。
- 兜兜转转,目前还是 VSCode 好用,VSCodium 也是一个不错的选择。
相关文章:

思考:VSCode 的宏观工作原理 快速入门 VSCodium (****)
23个常用的VSCode快捷键(动图演示)> https://www.php.cn/faq/441696.html VSCodium AppImage 版 使用记录 https://blog.csdn.net/ken2232/article/details/143591323 **** 初步比较:VSCode > pk < VSCodium << 在下…...

C++ day8——模版
笔记脑图 作业 template <class T> class mylist{ public:// 这是一个链表的节点struct Link{T val;Link* next; } 增 :insert(T val) 在链表中创建新节点,节点上保存的数据为 val删:remove(T val) 移除链表中数据为 val 的节点改…...

【CSS in Depth 2 精译_080】 13.1:CSS 渐变效果(中)——不同色彩空间的颜色插值算法在 CSS 渐变中的应用
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 13 章 渐变、阴影与混合模式】 ✔️ 13.1 渐变 ✔️ 13.1.1 使用多个颜色节点(上)13.1.2 颜色插值方法(中) ✔️13.1…...

红日靶场1(搭建打靶)
搭建 靶场下载: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ (13G,需要百度网盘会员) 下载好靶场文件后直接解压 直接用虚拟机打开靶场 更改网络ip 需要模拟内网和外网两个网段, Win7 虚拟机相当于网关服务器,所以需要…...
LivePortrait 部署笔记
LivePortrait 开源地址: https://github.com/KwaiVGI/LivePortrait 模型下载: export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download --resume-download KwaiVGI/LivePortrait --local-dir models--KwaiVGI--LivePortrait...

Greenhills Lib操作-查看Lib信息与将lib中的data段link到指定区域
文章目录 前言Greenhillls中gsize的用法修改ld文件将lib中的data段指定区域示例定义与链接总结 前言 项目开发过程中,遇到客户开发ASW,提供Lib进行集成,但ASW中的标定量没有定义对应的data段,导致无法将标定量指定到特定的内存。…...

【十进制整数转换为其他进制数——短除形式的贪心算法】
之前写过一篇用贪心算法计算十进制转换二进制的方法,详见:用贪心算法计算十进制数转二进制数(整数部分)_短除法求二进制-CSDN博客 经过一段时间的研究,本人又发现两个规律: 1、不仅仅十进制整数转二进制可…...

【JavaEE】网络(2)
一、网络编程套接字 1.1 基础概念 【网络编程】指网络上的主机,通过不同的进程,以编程的方式实现网络通信;当然,我们只要满足进程不同就行,所以即便是同一个主机,只要是不同进程,基于网络来传…...

AI for Science 的完美实践——科研文献的智慧化提取获得“综述性文摘”的软件开发
实践是检验真理的唯一标准!show your codes! 1 综述性文摘的需求 再简单不过了。 甲方(综述性文摘)需求:针对项目特征或描述,从几百篇相关的科研论文(PDF)中智能提取相关内容,包括…...
前端使用xlsx.js实现 Excel 文件的导入与导出功能
前端使用xlsx.js实现 Excel 文件的导入与导出功能 在现代的 Web 开发中,处理文件上传和导出功能已经变得越来越常见,尤其是 Excel 文件的导入与导出。 我们将使用 Vue.js 和 XLSX.js 库来处理 Excel 文件的读取和生成。XLSX.js 是一个强大的 JavaScrip…...
React简单了解
原理简化了解 import React from "react" import { createRoot } form "react-dom/client"const element React.createElement(p,{id: hello},Hello World! )const container document.querySelector(#root) const root createRoot(container) root.r…...
backbone 和Run-Length Encoding (RLE)含义
在深度学习中,特别是在图像分割任务中,backbone(主干网络)是指用于特征提取的预训练神经网络模型。Backbone 的主要作用是从输入图像中提取有用的特征,这些特征随后会被用于更高层次的任务,如分类、检测或分…...

在Centos7上安装MySQL数据库 How to install MySQL on Centos 7
执行以下命令,下载并安装MySQL。 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm && yum -y install mysql57-community-release-el7-10.noarch.rpm && yum install -y mysql-community-server --nogpgcheck执行以下…...
Linux docker-20.10.9安装
Linux Docker20.10.9安装 解压文件 tar -xvf docker-20.10.9.tgz 给docker执行文件赋予可执行权限 chmod 755 -R docker/复制docker到/usr/bin/目录下,使docker命令可以执行 cp docker/* /usr/bin/将Docker注册为service,创建docker.service文件 vim /etc/syst…...

操作系统(13)虚拟存储器
前言 操作系统中的虚拟存储器是一项关键技术,它为用户提供了一个远大于实际物理内存容量的逻辑内存空间。 一、定义与原理 虚拟存储器是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统。其逻辑容量由内存容量与外存容量之和决定&…...

《面向对象综合训练01~05》
《面向对象综合训练01~05》 训练01:文字版格斗游戏 第一步:创建游戏角色的javabean类 public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces…...

电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?
电脑故障排查指南:揭秘“msvcr120.dll缺失”的真相与解决方案 在软件开发与日常维护的广阔天地里,遇到系统报错或文件缺失的情况可谓家常便饭。今天,我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”,并揭秘其背…...

huggingface NLP-微调一个预训练模型
微调一个预训练模型 1 预处理数据 1.1 处理数据 1.1.1 fine-tune 使用tokenizer后的token 进行训练 batch tokenizer(sequences, paddingTrue, truncationTrue, return_tensors"pt")# This is new batch["labels"] torch.tensor([1, 1])optimizer A…...

【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
文章目录 1. 问题描述2. 原因2.1 编码2.2 解码 3. 解决方法 1. 问题描述 之前写了一个接口,用 Apifox 请求,参数传入一个 86 的电话,结果到服务器 就变成空格了。 Java 接收请求的接口: 2. 原因 2.1 编码 进行 URL 请求的…...

Spring AI API 介绍
目录: Spring AI 框架介绍 Spring AI API 核心API简介 Spring AI 提供了很多便利的功能,主要如下: AI Model API “Model API” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能,且不局限于某个固定的大模型提供商…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...