思考: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” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能,且不局限于某个固定的大模型提供商…...

【MySQL】Linux使用C语言连接安装
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...

2024年第十五届蓝桥杯青少组C++国赛—割点
割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问…...

【软件开发】做出技术决策
文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...

Airborne使用教程
1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...

WPF实现曲线数据展示【案例:震动数据分析】
wpf实现曲线数据展示,函数曲线展示,实例:震动数据分析为例。 如上图所示,如果你想实现上图中的效果,请详细参考我的内容,创作不易,给个赞吧。 一共有两种方式来实现,一种是使用第三…...

EasyExcel 动态设置表格的背景颜色和排列
项目中使用EasyExcel把数据以excel格式导出,其中设置某一行、某一列单元格的背景颜色、排列方式十分常用,记录下来方便以后查阅。 1. 导入maven依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easy…...

【 C++11 】类的新功能
C类的新功能 一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字 一、默认成员函数 八个默认成员函数 在C11之前,一个类中有如下六个默认成员函数: 构造函数。析构函数。拷贝构造函数。拷贝赋值…...

防止SQL注入:PHP安全最佳实践
防止SQL注入:PHP安全最佳实践 SQL注入是一种常见的网络攻击方式,攻击者通过向应用程序的SQL查询中插入恶意代码,来获取、操控或破坏数据库中的数据。为了保护PHP应用免受SQL注入攻击,开发者需要遵循一系列安全最佳实践。本文将介…...

自动化生产或质量检测准备工作杂记
自动化生产或质量检测一个流程是: 上料位上料: “上料位”指的是物料被放置以供机器或设备处理的位置。“上料”指的是将物料从存储位置移动到加工或检测位置的过程。移动到对位相机位置: “对位相机”是一种高精度相机,用于精确…...

张志辰医生
在医学领域,北京中医药大学东方医院的张志辰副主任医师宛如一颗璀璨的明星。自 2011 年于北京中医药大学获取博士学位后,他便扎根临床一线,以精湛医术和仁心仁术,为众多患者排忧解难 张志辰曾先后前往北京天坛医院、广东中山医院…...