VS Code 干就完了!!!!!

插件

插件安装

最简单的方法就是通过VSCode的插件商店进行安装,除此之外还可以使用命令行安装:

> code --install-extension ms-vscode.cpptools
Installing extensions...
Installing extension 'ms-vscode.cpptools'...
Extension 'ms-vscode.cpptools' v1.19.9 was successfully installed.

其中,code是VSCode提供的命令,通常位于<install_path>\Microsoft VS Code\bin下,除此之外,还有一些其它命令:

  • code:打开VSCode;

  • code --list-extensions:列出已经安装的插件;

  • code --uninstall-extension (<extension-id> | <extension-vsix-path>):卸载插件;

    命令行除了使用插件的id之外,还可以在插件市场将插件的vsix文件下载下来,然后使用code --install-extension进行下载:

在这里插入图片描述

然后执行命令即可安装:

> code --install-extension "C:\Users\24981\Desktop\esbenp.prettier-vscode-10.4.0.vsix"
Installing extensions...
Extension 'esbenp.prettier-vscode-10.4.0.vsix' was successfully installed.

插件更新

默认情况下,VSCode中的插件都是会自动更新的,如果想要阻止该行为,需要在设置配置文件中进行配置:"extensions.autoUpdate": false,或者在设置中搜索autoupdate,然后将自动更新选为none:

在这里插入图片描述

IntelliSense

IntelliSense是VSCode中的一种智能提示的功能,包括:代码补全、提供函数参数信息等功能。其默认提供给JavaScript,TypeScript,JSON,HTML,CSS,SCSS以及Less。如果想要支持其它语言,则需要安装对应的语言插件。

可以看到,VSCode是对html元素有一定的提示的,有着补全、和标签描述等信息:

在这里插入图片描述

而当VSCode切换成C语言时,则失去了对应的提示:

在这里插入图片描述

在下载了C/C++插件后,便有了对应的提示:

在这里插入图片描述

实际上,IntelliSense的功能主要依赖于提供语言服务(Language Service)的插件,而不是语言插件本身,例如,下载了python插件之后,便可以使用VSCode的IntelliSense,而实际上在下载python插件时,还同时下载了Pylance以及Python Debugger两个插件,其中Pylance才是提供语言服务的插件:

在这里插入图片描述

提示类型及其对应图标

VSCode的IntelliSense还会提示补充的东西的类型,例如是方法、类、变量等。在Python中,比较常见的有Methods(方法)、Variables(变量)、Classes(类)以及Modules:

在这里插入图片描述

Python没有对应的代码提示或不能跳转代码

在安装Python插件时,会自动安装语言服务Pylance,其是支持IntelliSense为python代码进行提示和跳转的插件。然而,有时在编写python代码时,明明安装了对应的包,但是在编写代码时却没有对应的提示,或者有了提示,但是却不能跳转代码:

在这里插入图片描述

可以看出,VSCode无法识别transformers包,但实际上在torch环境下,已经安装了该包,解决该问题的一个办法是,为Pylance添加额外的搜索路径,即告诉其包所在的位置<env_path>/envs/torch/lib/site-packages

在这里插入图片描述

在将包的所在路径加入进去后,可以看到,Pylance已经可以找到transformers,并且有对应的提示了

在这里插入图片描述

配置(Setting)

在VSCode中,有很多方式可以打开配置,包括:使用快捷键ctrl + ,,使用命令盘搜索settings等。

配置有两种形式,UI形式和JSON形式,可以通过右上角的按钮进行切换:

在这里插入图片描述

配置有两种:默认配置(default settings)以及用户配置(user settings),其中默认配置是在安装VSCode中自带的配置,不能修改,甚至VSCode也没有提供该配置文件的所在位置。

在这里插入图片描述

而用户配置则能够修改,并且会提供位置,在Windows中通常为Users/<user_name>/AppData/Roaming/Code/User/settings.json。由于默认配置不可修改,实际上如果修改原来的配置就是对用户配置进行更改,通过将用户配置覆盖默认配置来实现配置的修改。

在这里插入图片描述

实际上除了默认配置和用户配置之外,还有一种配置是工作区配置(Workspace settings),其通常在工作区根目录下的.vscode下,名为settings.json,其作用范围为整个工作区,并且优先级高于用户配置,或者说工作区配置会覆盖用户配置。即工作区配置>用户配置>默认配置,所以会优先使用工作区的配置信息,然后使用用户配置的信息,最后使用默认配置的信息。

在下载插件后,更改插件的行为也是在配置文件中进行更改。例如为Pylance增加额外的寻找路径,则会在配置文件中添加类似如下内容的配置信息:

"python.autoComplete.extraPaths": [
      
      "/mnt/ssd/shizhou/my_env",
      "/mnt/ssd/shizhou"
  ],

注意: 如果在配置中遇到错误:[Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again. 可能是配置文件settings.json格式有错误,可以进入https://jsonlint.com/?code=验证一下配置文件是否有格式错误。

快捷键绑定(Keyboard shrtcuts Bindings)

与配置相同,默认的快捷键配置文件是只可读的,并且没有提供其所在位置,而对快捷键的修改是通过一个新的keybinding.json文件实现的,其在Windows下通常位于Users/<user_name>/AppData/Roaming/Code/User/keybinding.json,即与用户自定义的配置文件在同一父文件夹下,并且用户是通过修改该配置文件来覆盖默认配置文件实现的快捷键的修改。

一些插件会自动的修改一些快捷键,例如Sublime Text Keymap插件会修改默认的快捷键配置文件,使得其快捷键是符合Sublime Text的。

快捷键修改

快捷键修改的方法非常符合人类习惯,可以在快捷键设置的UI界面上点击“铅笔”图标进行修改,或者双击进行修改。因为本质上UI界面是一个JSON的配置文件,所以直接通过修改keybinding.json文件也可以实现修改快捷键的操作。

在这里插入图片描述

快捷键规则

每个快捷键的设置在配置中包含:

  • key:需要按下的键,即快捷键;
  • command:需要执行的命令的标识符,例如复制命令是Copy
  • when:这是一个可选项,为一个布尔表达式,根据当前上下文判断条件是否满足,只有满足条件快捷键才会生效;
// Keybindings that are active when the focus is in the editor
{ "key": "home",            "command": "cursorHome",                  "when": "editorTextFocus" },
{ "key": "shift+home",      "command": "cursorHomeSelect",            "when": "editorTextFocus" },

// Keybindings that are complementary
{ "key": "f5",              "command": "workbench.action.debug.continue", "when": "inDebugMode" },
{ "key": "f5",              "command": "workbench.action.debug.start",    "when": "!inDebugMode" },

快捷键冲突

由于VSCode中的插件也会有默认的快捷键,很容易产生快捷键的冲突,即一个快捷键对应多个不同的命令,从而导致非预期的行为。在快捷键的UI界面可以右击点击一个命令,选择“Show Same Keybindings“查看与其快捷键相同的命令:

在这里插入图片描述

当有一个快捷键绑定多个命令时,VSCode会自底向上的匹配快捷键对应的命令,如果同时满足when对应的条件,那么该命令将会被执行,并且不会再匹配其它的规则。用户自定义的配置文件是会放在默认规则的地步,从而允许它们覆盖默认规则

when条件语句

除了调整快捷键的位置以避免冲突之外,一种更有效的方式是编写更符合上下文的when条件语句,因为只有快捷键的键位和when条件语句同时满足时,对应命令才会执行,所以只要针对不同的应用场景编写不同的条件语句,可以更灵活地使用快捷键,并更方便地避免快捷键冲突的问题。如果快捷键没有设置when语句,那么它总会生效。

常见的语句的运算符如下所示:

在这里插入图片描述

常见的长下文名称如下所示:
在这里插入图片描述

工作区 (Workspace)

工作区就是一个或多个在VSCode中打开的文件夹的集合,使用工作区的好处在于可以针对某个或某几个文件夹进行单独的设置,包括插件的设置、调试器的设置等,并且这多个文件夹可以不来自于同一个父文件夹

对于单个文件夹来说,不需要进行额外的操作,VSCode就会将其视为一个工作区,当使用VSCode再次打开该文件夹时,能够看到之前离开时打开的页面和布局等信息。通过在其.vscode文件夹下添加配置,例如launch.json,可以实现对该文件夹指定的配置。

对于多个文件夹来说,可以将它们配置为同一工作区,通常叫作多根工作区(Multi-root workspaces)。在使用VSCode打开工作区时,打开的并不是这个工作区对应的文件夹,而是打开的<name>.code-workspace配置文件下列出的工作区包含的文件夹,例如:

{
  "folders": [
    {
      "path": "my-folder-a"
    },
    {
      "path": "my-folder-b"
    }
  ]
}

可以通过File选项来将文件夹添加到工作区,或删除工作区中的文件夹:

在这里插入图片描述

工作区文件路径

工作区配置文件没有要求一定要存放在固定的路径下,其可以存放在任何位置,只要其提供的信息能够帮助找到工作区对应的文件夹即可,如下所示,将KLGraph.code-workspace存放在了KLGraph文件夹下,但是配置文件指定了需要打开的文件夹路径,因此工作区中包含了KLGraph以及HLM两个文件夹。

在这里插入图片描述

工作区设置

工作区的配置文件将会覆盖全局的用户配置和默认配置,该配置文件通常是一个JSON文件,存放位置取决于该工作区是被作为一个文件打开的(单文件夹)还是作为.code-workspace文件打开的(多文件夹)。

对于单文件夹的情况,工作区配置文件会存放在.vscode/settings.json

当使用.code-worksapce打开工作区时,所有的工作区配置被存放在.code-worksapce文件中,同时也可以为单个文件进行配置,即实现文件级别的配置,还是修改.vscode下的配置文件即可。文件级别的配置会覆盖工作区级别的配置。同理,对于launch和task的配置也类似于settings的设置,如下所示,为通过工作区文件对工作区进行配置:

{
	"folders": [
		{
			"path": "../KLGraph"
		},

		{
			"path": "../HLM"
		}
		
	],
	"settings": {
		
	},

	"launch": {
		"version": "0.2.0",
		"configurations": [],
		"compounds": []
	},
	"tasks": {
		"version": "2.0.0",
		"tasks": [
			{
				"label": "My Task",
				"command": "echo hello",
				"type": "shell",
				"args": [],
				"problemMatcher": [
					"$tsc"
				],
				"presentation": {
					"reveal": "always"
				},
				"group": "build"
			}
		]
	}
	

}

调试(Debugging)

VSCode内置了对Node.js、JS、TS以及可以转为JS的任何语言的调试支持,即无需安装任何插件,即可调试这些使用这些语言的程序。而对于其它语言来说,则需要安装对应的插件。例如对于Python来说,需要安装Python插件,安装该插件会自动安装Python Debugger插件,其是真正用来支持调试功能的插件。而对于Java来说,则需要安装Debugger for Java插件。

VSCode允许用户通过配置文件来指定调试器的行为,该配置文件的名称为launch.json,默认在工作区的(项目的根目录).vscode文件夹下,可以通过Run and Debug按钮下的create a launch.json file来创建:

在这里插入图片描述

VSCode会自动检测调试的环境,例如打开了一个以ipynb结尾的文件,VSCode会推荐使用Python环境进行调试:

在这里插入图片描述

接着,就会在.vscode文件夹下创建一个名为launch.json的配置文件,内容如下所示:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Debugger: Current File",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

**注意:**不同的debugger对应的launch的配置是不同的,在一个debugger可以使用的配置可能在另外的debugger上是不可使用的。

如果想要设置一个全局的"launch"配置文件,则需要再设置里进行配置:

"launch": {
    "version": "0.2.0",
    "configurations": [{
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${file}"
    }]
}

Launch和Attach的区别

在VSCode中,调试模式主要分为两种:Launch以及Attach,它们适用于不同的工作流程,通过配置中的request属性进行设置。

对于Launch模式来说,VSCode会启动需要调试的程序,并将调试器连接进入这个程序。而在Attach模式中,VSCode的调试器可以连接到一个已经运行的进程上。总的来说,Launch模式适用于希望从 VS Code 启动应用程序,并且希望调试器从应用启动时就连接到应用程序。Attach模式适用于应用程序已经在运行,需要将调试器连接到正在运行的进程。

添加新的配置

由于调试所有的程序都需要使用launch.json文件,那么如果一个工作区同时存在两个不同语言的文件夹,只有一种配置则会导致另一种语言调试失败。因此,对于这种情况,则需要再launch.json中添加一个额外的配置。

点击右下角的Add Configuration,或者使用命令板输入"debug: add configuration"均可添加新的配置:

在这里插入图片描述

在添加上额外的配置之后,在调试按钮下,可以看到对应的配置名,之后在调试的时候选择对应的名称即可:

在这里插入图片描述

Launch.json中的属性

launch.json中有很多属性来更改调试器的行为,以下是每个launch配置文件中必备的属性:

  • type:调试器的类型,每一个安装的debug插件都会引入一种类型,例如node用于Node调试器,php用于PHP调试器。即需要调试什么语言的代码,就要设置为对应的类型,对于python来说则为debugpy

  • request:请求类型,目前只支持launchattach两种值,分别表示启动一个新的程序或连接到一个已经运行的程序;

  • name:调试器的名称,展现给用户以方便其确定是哪一个调试器的配置

    以下是可选的属性:

  • presentation:用来控制调试配置在下来菜单中的排序、分组还是隐藏。可以设置order控制排序,group控制分组,hidden控制是否隐藏;

    # 该配置会使得两个配置在同一个分组,并且第一个配置位于第二个配置之前
    "configurations": [
            {
                "type": "cmake",
                "request": "launch",
                "name": "CMake: Script debugging",
                "cmakeDebugType": "script",
                "scriptPath": "${workspaceFolder}/<...>.cmake",
                "presentation": {
                    "hidden": false,
                    "group": "good",
                    "order": 1
                }
            },
            {
                "name": "Python Debugger: Current File",
                "type": "debugpy",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "presentation": {
                    "hidden": false,
                    "group": "good",
                    "order": 2
                }
            }
        ]
    

    在这里插入图片描述

  • preLaunchTask:在调试会话开始之前自动执行的任务,例如需要先编译再调试,那么可以设置一个编译任务作为preLaunchTask

  • PostDebugTask:在调试会话结束时执行的任务,例如调试结束后需要删除一些产生的文件;

  • internalConsoleOptions:操控调试控制台面板在调试会话期间的显式方式,设置为openOnSessionStart将在调试开始时自动打开调试控制台;

  • debugServer:仅供调试插件的开发者使用;

  • serverReadyAction:当程序输出特定消息时自动在浏览器中打开一个URL,例如在调试一个Web应用时,当服务器打印出Listen on http://localhost:3000时,自动打开该URL;

还有一些调试器支持以下属性:

  • program:调试会话中要运行的程序或文件,可以使用变量名来表示,例如${file}表示当前文件,对于python来说缺少该属性则会报错;

  • args:传输给程序的命令行参数,就像在终端执行脚本那样传输参数。"args": ["--config", "config.json", "--verbose"]

  • env:设置程序运行时的环境变量。"env": {"NODE_ENV": "development"}

  • cwd:程序的当前工作目录,通常设置为${workspaceFolder}

  • port:当attach到一个正在运行的程序时使用的端口;

  • console:使用哪一种终端,有internalConsoleintegratedTerminal以及externalTerminal

远程(Remote)

VSCode提供了一些插件用来实现本地VSCode和远程主机的连接,其中最常使用的插件为Remote SSH,实现了通过SSH连接远程主机,并在远程主机上执行代码的功能。此外,还有一些额外的插件为该插件提供服务,例如Remote Explorer会显示已经配置的所以SSH主机,方便通过可视化的方式来连接。Remote - SSH: Editing Configuration Files提供了修改ssh配置文件的语法高亮、提示等功能,即可以认为该插件实现了ssh配置文件的IntelliSense功能。

除此之外还有Dev Containers插件实现与容器内的环境进行交互,WSL插件实现与WSL系统的交互,Remote Tunnels插件实现在不配置SSH的情况下,通过安全隧道与远程主机进行连接的功能。

VSCode Server

VSCode Server是在远程主机上的一种服务,在远程主机上运行,它允许用户从本地的VSCode客户端连接到远程机器。它通常不需要主动地在远程主机上进行安装,当使用VSCode提供的远程开发拓展,例如Remote SSH时,VSCode会检测远程主机上是否存在VSCode Server,如果不存在则会自动安装并启动。在Linux下,通常位于~/.vscode-server

之所以需要VSCode Server,是因为在远程连接时,大部分的工作是远程主机承担,本地主机主要是显示功能,因此远程主机上代码的运行、调试等功能是与本地VSCode无关的。VSCode Server便可以在远程主机上执行,以实现这些功能(执行代码的运行、编译等)。

在这里插入图片描述

插件运行机制

当连接到远程主机时,VSCode的插件有两种运行方式:在本地运行和在远程主机上运行。一般影响VSCode UI的插件,例如主题插件,通常会在本地运行,而大多数插件,例如Python则会在远程上运行,这也就意味着远程主机必须安装对应的插件才能实现对应的功能。

因此,插件分为本地插件(LOCAL)和远程插件(SSH:…):


在这里插入图片描述

如果一个本地安装的插件不能够在远程运行的话,那么其就会显示的比较暗淡,并且是禁用状态:

在这里插入图片描述

VSCode Server的更新和下载

VSCode Server并不是安装一次后就不会再更新了,而是根据VSCode的版本来进行选择的。例如,版本较老的VSCode也和版本较老的VSCode Server兼容,版本较新的VSCode和版本较新的VSCode Server兼容。但是在远程连接的时候,可能会有多个电脑同时连接远程服务器,并且每个电脑的VSCode版本也可能是不同的,因此在.vscode-server目录下通常会维护多个不同的VSCode Server版本,即VSCode Server总是伴随着下载或更新的操作。

**注意:**这并不意味着VSCode更新之后VSCode Server就一定会自动更新,只要二者的版本满足兼容性就不会自动更新,只有当VSCode更新之后,当前的VSCode Server与其不兼容时,才会自动更新。

.vscode-server的目录结构

首先,是.vscode-server的目录结构,其下有多个子文件夹:

  • bin:存放不同版本的VSCode Server的二进制文件和相关资源。每个子目录都是一个长字符串命名的文件夹,对应一个特定的VSCode Server版本的提交ID。该文件夹下的子目录才是确定VSCode Server版本对应的资源;

    # 每个子目录都对应一个VSCode的版本
    $ ls -lh ~/.vscode-server/bin/
    total 16K
    drwxrwxr-x 6 huang huang 4.0K Feb 14 12:49 05047486b6df5eb8d44b2ecd70ea3bdf775fd937
    drwxrwxr-x 6 huang huang 4.0K Feb 14 13:49 31c37ee8f63491495ac49e43b8544550fbae4533
    drwxrwxr-x 6 huang huang 4.0K Apr  7 15:49 863d2581ecda6849923a2118d93a088b0745d9d6
    drwxrwxr-x 6 huang huang 4.0K Feb 23 17:47 903b1e9d8990623e3d7da1df3d33db3e42d80eda
    
  • data:用户数据目录,用于存放用户配置文件和状态信息;

  • extensions:存储通过VSCode安装在远程服务器上的扩展。这允许扩展在远程环境中直接运行,而不是在本地机器上;

  • logs:包含日志文件,记录远程会话和VSCode Server的运行情况,非常有用于诊断问题;

  • cli:包含VSCode的命令行工具的实现,这个工具使得可以通过命令行和VSCode进行交互,其包含一系列脚本和脚本文件,可以执行命令打开特定文件、列出安装的拓展等;

    • cli/servers:存储了与VSCode的远程开发功能相关的一些服务端组件,等使用例如Remote SSH这种插件时,VSCode需要再远程服务器上运行一些后台服务来管理文件、拓展等。这些服务包括与文件系统的交互、代码执行相关的服务端程序。通常来说,/bin/下的版本{commit_sha}是该目录下Stable-${commit_sha}/server的软连接
  • extensionsCache:目录用于存储有关已安装扩展的元数据和缓存信息。这个缓存帮助 VSCode 快速加载扩展的信息,提高启动速度和响应速度。

手动下载指定版本的VSCode Server

由于VSCode Server的版本需要适应VSCode的版本,通常会在远程连接的时候自动下载或更新,在某些情况下远程主机可能没有办法访问互联网,或者因为网络问题下载较慢,需要手动下载对应的VSCode Server。

首先,需要确定当前VSCode的版本。点击VSCode中Help -> About可以看到VSCode的有关信息,包括版本,和提交的哈希码等信息,其中提交的哈希码是我们需要的版本信息:

在这里插入图片描述

​ 除了使用VSCode本身自带的提交版本之外,还可以打开https://update.code.visualstudio.com/api/commits/stable/linux-x64可以查看所有的VSCode版本,其中在最前面的为最新的版本:

在这里插入图片描述

然后通过curl -s --fail -L "https://update.code.visualstudio.com/commit:${commit_sha}/server-${PLATFORM}-${ARCH}/stable"下载对应版本的VSCode Server,其是一个tar.gz的压缩包。

# 例如https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/stable
curl -L "https://update.code.visualstudio.com/commit:${commit_sha}/server-${PLATFORM}-${ARCH}/stable" -o vscode-server.tar.gz

接着就是要为远程服务的创建存放的位置,如果之前下载过VSCode Server,那么可以跳过这一步,否则就要重建对应的文件,保证主机中存在~/.vscode-server/bin/${commit_sha},以及~/.vscode-server/cli/servers/Stable-${commit_sha}然后将下载的压缩包在该文件夹下解压。

tar --no-same-owner -xzv --strip-components=1 -C ~/.vscode-server/bin/"${commit_sha}" -f vscode-server.tar.gz

最后,将~/.vscode-server/bin/${commit_sha}中的内容拷贝为~/.vscode-server/cli/servers/Stable-${commit_sha}/server即可:

ln -s ~/.vscode-server/bin/"${commit_sha}" ~/.vscode/cli/servers/Stable-"${commit_sha}"/server

总体的流程为:

# 确认需要下载版本
{commit_sha} = "dc96b837cf6bb4af9cd736aa3af08cf8279f7685"

# 下载对应的VSCode Server压缩包到本地
curl -L "https://update.code.visualstudio.com/commit:dc96b837cf6bb4af9cd736aa3af08cf8279f7685/server-linux-x64/stable" -o vscode-server.tar.gz

# 创建文件夹
mkdir -vp ~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685
mkdir -vp ~/.vscode-server/extensions
mkdir -vp ~/.vscode-server/extensionsCache
mkdir -vp ~/.vscode-server/cli/servers/Stable-dc96b837cf6bb4af9cd736aa3af08cf8279f7685

# 解压压缩包到mkdir -vp ~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685下
tar --no-same-owner -xzv --strip-components=1 -C ~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f768 -f vscode-server.tar.gz

# 使用软连接将~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685的内容拷贝为~/.vscode/cli/servers/Stable-dc96b837cf6bb4af9cd736aa3af08cf8279f7685/server
ln -s ~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685 ~/.vscode-server/cli/servers/Stable-dc96b837cf6bb4af9cd736aa3af08cf8279f7685/server

实际上,似乎只需要将vscode-server.tar.gz解压到~/.vscode-server/cli/servers/Stable-{commit-sha}/server下即可(但可能是最新版本是这样),即流程为:

# 确认需要下载版本
{commit_sha} = "dc96b837cf6bb4af9cd736aa3af08cf8279f7685"

# 下载对应的VSCode Server压缩包到本地
curl -L "https://update.code.visualstudio.com/commit:dc96b837cf6bb4af9cd736aa3af08cf8279f7685/server-linux-x64/stable" -o vscode-server.tar.gz

# 创建文件夹
mkdir -vp ~/.vscode-server/extensions
mkdir -vp ~/.vscode-server/extensionsCache
mkdir -vp ~/.vscode/cli/servers/Stable-dc96b837cf6bb4af9cd736aa3af08cf8279f7685/server

# 解压压缩包到mkdir -vp ~/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685下
tar --no-same-owner -xzv --strip-components=1 -C ~/.vscode-server/cli/servers/Stable-dc96b837cf6bb4af9cd736aa3af08cf8279f768/server -f vscode-server.tar.gz

以上命令参考来自https://github.com/b01/dl-vscode-server,可以根据其提供的download-vs-code-server.sh获得更多信息。

手动下载插件

与手动下载VSCode Server的原因相似,在远程主机无法访问互联网或者遇到一些网络问题时,我们需要手动地将本地的插件进行安装。

首先,进入VSCode的插件市场https://marketplace.visualstudio.com/,在上面搜索需要的插件,点击插件页面中的Download Extension,便会下载插件对应的vsix类型的插件:

在这里插入图片描述

在下载好插件后,可以将所有的插件放入到一个文件夹中:

admin123@admin123-Super-Server:~$ ls vscode_plugins_local/
ms-python.debugpy-2024.6.0@linux-x64.vsix  ms-python.python-2024.7.11311010.vsix  ms-python.vscode-pylance-2024.5.100.vsix

由于VSCode当前没有提供可以同时下载多个插件的命令,所以需要遍历所有插件,一个个下载:

for vsix in $(ls ./vscode_plugins_local/*.vsix); do
  code --install-extension $vsix
done

Installing extensions on SSH: admin123...
Extension 'ms-python.debugpy-2024.6.0@linux-x64.vsix' was successfully installed.
Installing extensions on SSH: admin123...
Extension 'ms-python.python-2024.7.11311010.vsix' was successfully installed.
Installing extensions on SSH: admin123...
Extension 'ms-python.vscode-pylance-2024.5.100.vsix' was successfully installed.

admin123@admin123-Super-Server:~$ code --list-extensions
Extensions installed on SSH: 4090_admin123:
grapecity.gc-excelviewer
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值