优雅玩转实验室服务器(三)vscode is all you need

在前两章解决了传输问题和连接问题后,我们紧接着遇到一个新的需求:我们需要coding呀,你当然可以说,我们可以用vim和对应的插件来搭建一个IDE呀,fine,我甚至可以给你推荐如下的教程:

Vim 到底可以配置得多漂亮?​www.zhihu.com/question/26248191/answer/2983366523?utm_campaign=&utm_medium=social&utm_oi=1121902427330162688&utm_psn=1631324468667637760​编辑

但是多年来的实践告诉我,大部分人还是习惯于一半图形界面无脑点点点的软件。而vscode就是我三年来实践后体验和泛用性最佳的代码编辑器,我使用过10多门编程语言进行过开发(C++14

,Python3,Java,JS,TS,Go,Verilog ......),而这些语言无一例外,都可以在vscode上找到对应的LSP插件来辅助你编写(你甚至能找到好几个用于编写minecraft插件和命令的插件,虽然vscode的C++插件写得烂是真的烂),这样你就可以直接在服务器上做开发。

而且vscode原生支持ssh,jupyter notebook,对于深度学习研究者而言非常合适。而且vscode本身提供了一些特性,能够很方便地完成一些常规操作,而无需再去通过繁琐的命令行操作。

这篇文章就讲解一下如何使用vscode优雅地在你的服务器上玩耍。


1、安装与配置

vscode下载链接:https://code.visualstudio.com/Download

注意:最新版本vscode已经不再支持Windows7,且从2019年开始,ssh不支持32位的服务器,如果有需要,请下载2019年之前的vscode发行版。

如何配置vscode不再赘述,如有需要,请移步下面这篇文章的“环境配置第一步:安装vscode”这部分:

锦恢:一款轻量级verilog HDL开发方案(一)vscode+iverilog搭建开发环境152 赞同 · 68 评论文章​编辑

我把我安装的基本插件罗列一下:

  • 主题:One Dark Pro
  • 图标:Material Icon Theme
  • 画流程图:http://Draw.io Integration
  • Python LSP:Python

2、vscode SSH

接下来,先使用vscode连接上你的服务器,打开vscode,按下面的步骤新建一个新的ssh host:

然后输入我们在第一章说的配置:

ssh <用户名>@<公网IP>

然后选择默认的ssh公钥位置(第一个),就可以登入了。

下一次登入,就只需要选择之前已经配置过的公网IP就可以直接登入了:


3、vscode-server

我认为我的读者在接触后续的vscode插件系统前必须知道以下信息,如果不感兴趣,请直接跳过。

一旦建立ssh连接后,使用vscode就和本地使用vscode几乎没有区别。需要注意,你在remote vscode需要重新安装一下你本地安装过的插件,这是因为建立ssh连接后,vscode的插件的运算负载就会被放在服务器上而不是你的PC上,甚至vscode本身的一些功能,比如左侧栏的全局替换和全局搜索,负责实际去计算的也是服务器。

所以,如果你的服务器的性能不是很好,或者一堆人用一个服务器,那么不是很建议在remote vscode上安装一堆插件。

一旦你通过vscode ssh连接了远程服务器,那么服务器上就会运行一个vscode-server进程,你可以通过ps a | grep vscode来查看:

不过你也不用太担心,如果你了解过vscode的架构的话,就会知道,vscode的插件是运行在一个单独的插件worker中的,所以插件不太会影响你的vscode的整体性能。

正是因为这样,你的插件的反馈速度取决于两点:

  • 服务器的性能
  • 服务器的网速

还有一点,你安装的插件不一定会被激活,只有满足特定条件时(比如工作区某种编程语言文件被打开),插件才会被激活,你可以通过如下的按钮查看目前已经激活的插件,只有被激活的插件才会占用内存和CPU:


4、语言插件安装(以Python为例)

在应用商店搜索python,找到第一个,也就是微软官方开发的:

直接点击下载就可以了。

为了让LSP正常工作,你必须选择正确的python解释器,点击右下角显示Python版本号的地方,然后vscode上方会出现一个列表,里面罗列了vscode扫描出的当前所有可用的python解释器,选择一个你需要的即可。

比如,我当前的工作区是用的anaconda的base环境,那么就选择'base'环境,然后那些第三方库也都可以正常解析了。

对于notebook玩家而言,也是一样,在右上角可以选择解释器,不过第一次在remote vscode种启动notebook时,需要安装vscode为jupyter设计的内嵌插件,由于remote vscode默认在远程服务器上禁用一些高负载的插件。所以,我们需要手动安装。点击“选择内核”,在上方弹出的QuickPick中选择第二个“浏览插件市场以获取内核扩展”:

安装这个插件即可:

安装完后,再次点击“选择内核”就会出现当前可用的python解释器了,选择合适的解释器,jupyter的一键运行和LSP就会依照这个解释器版本来执行。


5、一些好用的特性

vscode可以直接预览工作区的图片,对于CVer来说,非常好用:

如果你是做多媒体的朋友,可以下载插件来实现远程预览音频文件和视频文件

你可以通过拖动或者ctrl c ctrl v的方式将本地的vscode工作区内的资源直接传输到remote vscode的工作区中,而不需要通过scp浪费时间。反过来,你也可以直接把remote vscode中的资源拖动到本地vscode中。

左边的编辑器是本地PC的vscode,右侧是连接到服务器的vscode


vscode的拥有非常丰富的插件,这些插件几乎可以帮助你完成大部分工作。比如我平时的coding,画流程图,写文档,写latex论文,几乎全部是在vscode上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/269742.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇腾910安装驱动出错,降低Centos7.6的内核版本

零、问题描述&#xff1a; 在安装Atlas800-9000服务器的驱动的时候&#xff0c;可能会出现错误&#xff1a;Dkms install failed, details in : /var/log/ascend_seclog/ascend_install.log 如下所示&#xff1a; [rootlocalhost ~]# ./Ascend-hdk-910-npu-driver_23.0.rc3_l…

HarmonyOS-ArkTS基础

ArkTS的起源和演进 1 引言 Mozilla创造了JS&#xff0c;Microsoft创建了TS&#xff0c;Huawei进一步推出了ArkTS。 从最初的基础的逻辑交互能力&#xff0c;到具备类型系统的高效工程开发能力&#xff0c;再到融合声明式UI、多维状态管理等丰富的应用开发能力&#xff0c;共…

直面双碳目标,优维科技携手奥意建筑打造绿色低碳建筑数智云平台

优维“双碳”战略合作建筑 为落实创新驱动发展战略&#xff0c;增强深圳工程建设领域科技创新能力&#xff0c;促进技术进步、科技成果转化和推广应用&#xff0c;根据《深圳市工程建设领域科技计划项目管理办法》《深圳市住房和建设局关于组织申报2022年深圳市工程建设领域科…

【Matlab】如何将二阶线性微分方程进行Laplace变换得到传递函数

二阶线性微分方程进行Laplace变换 前言正文代码实现 前言 二阶线性微分方程: 一个二阶线性微分方程通常可以写成如下形式: y ′ ′ ( t ) p ( t ) y ′ ( t ) q ( t ) y ( t ) f ( t ) y^{\prime \prime}(t)p(t) y^{\prime}(t)q(t) y(t)f(t) y′′(t)p(t)y′(t)q(t)y(t)f(…

十三、YARN资源分配调用

1、为什么要先学习YARN组件&#xff1f; 在Hadoop文件系统中&#xff0c;YARN作为Hadoop系统的第三大组件&#xff0c;其中&#xff0c;第二大组件MapReduce组件是基于YARN运行的&#xff0c;即没有YARN无法运行MapReduce程序&#xff0c;所以需要同时学习YARN。 2、YARN &…

基于SSM的实验室排课系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

《地理信息系统原理》笔记/期末复习资料(10. 空间数据挖掘与空间决策支持系统)

目录 10. 空间数据挖掘与空间决策支持系统 10.1. 空间数据挖掘 10.1.1. 空间数据挖掘的概念 10.1.2. 空间数据挖掘的方法与过程 10.1.3. 空间数据挖掘的应用 10.2. 空间决策支持系统 10.2.1. 空间决策支持系统的概念 10.2.2. 空间决策支持系统的结构 10.2.3. 空间决策…

Python 小程序之PDF文档加解密

PDF文档的加密和解密 文章目录 PDF文档的加密和解密前言一、总体构思二、使用到的库三、PDF文档的加密1.用户输入模块2.打开并读取文档数据3.遍历保存数据到新文档4.新文档进行加密5.新文档命名生成路径6.保存新加密的文档 四、PDF文档的解密1.用户输入模块2.前提准备2.文件解密…

【MySQL】MySQL数据库基础--什么是数据库/基本使用/MySQL架构/存储引擎

文章目录 1.什么是数据库2.主流数据库3.基本使用3.1MySQL安装3.2连接服务器3.3服务器管理3.4服务器&#xff0c;数据库&#xff0c;表关系3.5使用案例3.6数据逻辑存储 4.MySQL架构5.SQL分类6.存储引擎6.1什么是存储引擎6.2查看存储引擎6.3存储引擎对比 1.什么是数据库 对于回答…

【初阶C++】前言

C前言 1. 什么是C2. C发展史3. C的重要性4. 如何学习C 1. 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; …

GoLang EASY 微服务游戏框架 01

1 Overview EASY 是一个go语言编写的框架&#xff0c;兼容性支持go版本1.19&#xff0c;go mod 方式构建管理。它是一个轻型&#xff0c;灵活&#xff0c;自定义适配强的微服务框架。 它支持多种网络协议TCP&#xff0c;websocket&#xff0c;UDP&#xff08;待完成&#xf…

基于51单片机的语音识别控制系统

0-演示视频 1-功能说明 &#xff08;1&#xff09;使用DHT11检测温湿度&#xff0c;然后用LCD12864显示&#xff0c;语音播放&#xff0c;使用STC11l08xe控制LD3320做语音识别&#xff0c; &#xff08;2&#xff09;上电时语音提示&#xff1a;欢迎使用声音识别系统&#xf…