当前位置: 首页 > news >正文

思考: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 默认是在系统的当前环境之下运行的运行。
  • 以下这两种运行方式的不同点在哪里,还不知道啊?
  1. 通过内置终端中激活 python 的虚拟环境,这样 VSCode 就会自动进入到 py 的虚拟环境中运行了。
  2. 在系统终端中激活 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快捷键&#xff08;动图演示&#xff09;> https://www.php.cn/faq/441696.html VSCodium AppImage 版 使用记录 https://blog.csdn.net/ken2232/article/details/143591323 **** 初步比较&#xff1a;VSCode > pk < VSCodium << 在下…...

C++ day8——模版

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

【CSS in Depth 2 精译_080】 13.1:CSS 渐变效果(中)——不同色彩空间的颜色插值算法在 CSS 渐变中的应用

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 13 章 渐变、阴影与混合模式】 ✔️ 13.1 渐变 ✔️ 13.1.1 使用多个颜色节点&#xff08;上&#xff09;13.1.2 颜色插值方法&#xff08;中&#xff09; ✔️13.1…...

红日靶场1(搭建打靶)

搭建 靶场下载&#xff1a; http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ (13G&#xff0c;需要百度网盘会员) 下载好靶场文件后直接解压 直接用虚拟机打开靶场 更改网络ip 需要模拟内网和外网两个网段&#xff0c; Win7 虚拟机相当于网关服务器&#xff0c;所以需要…...

LivePortrait 部署笔记

LivePortrait 开源地址&#xff1a; https://github.com/KwaiVGI/LivePortrait 模型下载&#xff1a; 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段指定区域示例定义与链接总结 前言 项目开发过程中&#xff0c;遇到客户开发ASW&#xff0c;提供Lib进行集成&#xff0c;但ASW中的标定量没有定义对应的data段&#xff0c;导致无法将标定量指定到特定的内存。…...

【十进制整数转换为其他进制数——短除形式的贪心算法】

之前写过一篇用贪心算法计算十进制转换二进制的方法&#xff0c;详见&#xff1a;用贪心算法计算十进制数转二进制数&#xff08;整数部分&#xff09;_短除法求二进制-CSDN博客 经过一段时间的研究&#xff0c;本人又发现两个规律&#xff1a; 1、不仅仅十进制整数转二进制可…...

【JavaEE】网络(2)

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

AI for Science 的完美实践——科研文献的智慧化提取获得“综述性文摘”的软件开发

实践是检验真理的唯一标准&#xff01;show your codes! 1 综述性文摘的需求 再简单不过了。 甲方&#xff08;综述性文摘&#xff09;需求&#xff1a;针对项目特征或描述&#xff0c;从几百篇相关的科研论文&#xff08;PDF&#xff09;中智能提取相关内容&#xff0c;包括…...

前端使用xlsx.js实现 Excel 文件的导入与导出功能

前端使用xlsx.js实现 Excel 文件的导入与导出功能 在现代的 Web 开发中&#xff0c;处理文件上传和导出功能已经变得越来越常见&#xff0c;尤其是 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)含义

在深度学习中&#xff0c;特别是在图像分割任务中&#xff0c;backbone&#xff08;主干网络&#xff09;是指用于特征提取的预训练神经网络模型。Backbone 的主要作用是从输入图像中提取有用的特征&#xff0c;这些特征随后会被用于更高层次的任务&#xff0c;如分类、检测或分…...

在Centos7上安装MySQL数据库 How to install MySQL on Centos 7

执行以下命令&#xff0c;下载并安装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&#xff0c;创建docker.service文件 vim /etc/syst…...

操作系统(13)虚拟存储器

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

《面向对象综合训练01~05》

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

电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?

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

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. 问题描述 之前写了一个接口&#xff0c;用 Apifox 请求&#xff0c;参数传入一个 86 的电话&#xff0c;结果到服务器 就变成空格了。 Java 接收请求的接口&#xff1a; 2. 原因 2.1 编码 进行 URL 请求的…...

Spring AI API 介绍

目录&#xff1a; Spring AI 框架介绍 Spring AI API 核心API简介 Spring AI 提供了很多便利的功能&#xff0c;主要如下&#xff1a; AI Model API “Model API” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能&#xff0c;且不局限于某个固定的大模型提供商…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...

李沐--动手学深度学习--GRU

1.GRU从零开始实现 #9.1.2GRU从零开始实现 import torch from torch import nn from d2l import torch as d2l#首先读取 8.5节中使用的时间机器数据集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps) #初始化模型参数 def …...

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积&#xff0c;这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能&#xff0c;常用的API…...