手把手教你配置VS Code 远程开发工具,工作效率提升N倍
来源 | 后端技术学堂
责编 | Carol
封图 | CSDN 付费下载于视觉中国
今天和大家分享一个远程开发解决方案,聊一聊我平常是如何用 VS Code 进行远程开发工作的,以及一步步教你搭建远程开发环境,拥有比德芙还丝滑的远程开发体验。
我们厂里为了最大程度提高工程师生产力,各种研发配套工具非常的齐全,对开发人员每人都有一台云主机,而且是个人主机哦,申请就有的那种。有了云开发主机在家里或者在公司都可以随便折腾,加班也更方便了(好像哪里有点不对)。
传统的远程开发
大家都知道我是从事后台服务器开发工作的,主力语言是C/C++。我们的服务端程序一般都是跑在 Linux
服务器上面,传统的开发流程是在 window 或 Mac 的 IDE 环境编写代码,然后用 ftp
或 sync
同步代码到开发机上编译,程序或服务最终发布到测试或生产环境运行。
就我来说,以前是这么干的:在本地 Windows 和 Linux 云开发机之间开启一个同步程序,本地编辑代码,实时后台同步到 Linux 云开发机,然后用 xshell
登录开发机编译、调试,这个过程有点不够优雅,现在有更香的解决方案。
更香的远程开发
1、介绍下VS Code
这是一款开源编辑器,却不止是编辑器。
Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等。该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能 - 引用维基百科
我最喜欢的是它的插件能力,几乎想要啥功能都能找到插件支持,应该不用我安利你们都会喜欢的。
在 2019 年的 Stack Overflow 组织的开发者调研中,VS Code被认为是最受开发者欢迎的开发环境,据调查87317名受访者中有 50.7% 的受访者声称正在使用VS Code。
说了这么多,反正要表达的就是VS Code很厉害就是了。
重点来了,今天的主角功能是下面这个远程开发扩展插件。
微软在 PyCon 2019 大会上发布了VS Code Remote ,从 1.35.0 版本正式提供可以在本地编辑远程开发环境的文件的功能,所以首先确保你的VS Code版本是在这个之上的才能体验到。
VS Code远程开发的工作原理,大致是这样的:
下面讲讲如何配置,我的Local OS是 Win10 , Remote OS 是 Linux云主机。
2、远程开发配置
配置SSH环境变量
远程开发本地 VS Code 用 SSH 协议与远程服务端通信,所以要先配置SSH环境变量,由于Git自带SSH客户端程序
如果你还没装Git的话,这里要先安装 Git,所以配置 Git 的 bin目录到环境变量的 PATH 变量下,这样VS Code连接的时候就能找到它了。
环境变量
安装远程开发插件
要能连上远程主机,首先我们需要下载VS Code远程开发插件,VS Code其实是提供了一个远程开发插件包,包括:
Remote - SSH - 通过使用 SSH 链接虚拟或者实体Linux主机。
Remote - Containers – 连接 Docker 开发容器。
Remote - WSL - 连接 Windows Subsystem for Linux (Linux子系统)。
打开软件的扩展界面,搜索 Remote
开头的插件,也能看到这三个的不同远程开发插件,我们这里连接的是云主机,选择安装 Remote - SSH 插件安装即可。
配置远程连接
首先点侧边栏的「远程资源管理器」之后点击「设置按钮」,进入远程机器配置界面。
修改 ssh 配置文件,用于登录远程机器,各项含义在图中有说明。
点击连接,登录远程服务器,需要输入几次远程服务器的密码(后面会教你怎么免密登录),输入确认即可。第一次连接会做VS Code Server的初始化工作比较慢,耐心等待。
登录成功,即可像操作本地环境一样,在VS Code客户端操作远程云主机上的文件。注意,下图中的「打开文件夹」已经是远端机器上的目录结构了。
给远程VS Code 安装插件。安装的插件是在云服务器的VS Code上,对本机的VS Code没有影响,插件在远端提供功能,比如代码审查、自动补齐等等,而这所有的一切就像在本地操作一样,对文件的更改也是直接操作的云主机上的文件,丝滑连接。
代码编辑与远程终端调试。打开文件编辑的是云服务器的文件,同时可以打开云服务终端,直接在终端操作编译或者查看云服务器信息。
3、配置SSH免密登录
按照上面的配置步骤,每次连接到远程服务器,都需要输入服务器登录密码很麻烦,可以配置SSH免密登录,免去每次输入密码的烦恼,具体操作步骤如下:
打开win cmd终端,输入 ssh-keygen -t rsa 生成秘钥对
打开生成的秘钥保存路径,拷贝
id_rsa.pub
内容,添加到到云服务器的~/.ssh/authorized_keys
文件后面。尝试再次连接,不用输密码了,enjoy!
写在最后
这套远程开发环境体验下来,我整体是比较满意的,最大的好处是不用给电脑装太多软件,选择VS Code是因为需要经常在C++/Python/Go三种IDE之间切换比较麻烦,现在即使是电脑配置低点都没关系,因为所有的编辑器插件扩展和代码都在云端,通过 SSH
连接操作一个VS Code打遍所有。
而且由于远程开发插件的存在,不论我在哪里,只要有电脑都能方便的打开云端开发环境,非常的方便,这么好用的工具大幅提升生产力,所以今天来分享给大家。
推荐阅读
用大白话彻底搞懂 HBase RowKey 详细设计
后端程序员必备:书写高质量SQL的30条建议
蚂蚁金服高要求的领域建模能力,对研发来说到底指什么?
再见 Python,Hello Julia!
CycleGan人脸转为漫画脸,牛掰的知识又增加了| 附代码
百万人学AI 万人在线大会, 15+场直播抢先看!
为什么黑客无法攻击公开的区块链?
真香,朕在看了!
手把手教你配置VS Code 远程开发工具,工作效率提升N倍相关推荐
- kali远程登录window_手把手教你配置VS Code远程开发工具,工作效率提升N倍
码小辫专注更多编程视频和电子书天天在用钱 今天和大家分享一个远程开发解决方案,聊一聊我平常是如何用 VS Code 进行远程开发工作的,以及一步步教你搭建远程开发环境,拥有比德芙还丝滑的远程开发体验. ...
- 手把手教你配置linux下C++开发工具——vim+ycm(YouCompleteMe),支持基于语义的自动补全和第三方库补全(史上最简单、史上最透彻、史上最全的终极解决方案)
截止到目前,vim稳定版本已经到了8.2+,ycm(YouCompleteMe的简称)最新版本与几年前的安装配置截然不同了.之前网上很多教程也教不得法,生搬硬套,没有讲透彻.所以,才下定决心写一篇自认 ...
- 软件_手把手教vscode配置c++,python开发环境
原创:软件_手把手教vscode配置c++,python开发环境 之前主用Python作为项目开发语言,将项目迁移到arm边缘盒子上后发现arm的cpu不给力,软件速度低于预期,所以计划将部分程序改为 ...
- Go 学习笔记(1)— Ubuntu 系统 Go 环境搭建、VS Code 配置 Go 开发环境、VS Code 远程开发配置
1. 安装说明 Ubuntu 下直接安装 Go 1.11 版本编译器时需要依赖 Go 1.4 版本.所以如果在使用 apt-get install go安装时参考以下链接安装:https://blog ...
- 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式
在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...
- ❤️周末爆肝两天❤️,万字长文,手把手教你配置CSDN主页的独特域名(保姆级教程,建议收藏)
❤️ 感受下效果图 ❤️ 目录 一.前言 二.先解决有没有的问题 1. 前置条件 2. 购买云服务器 3. 购买DNS域名 4. 配置Apache2服务 5. 配置云服务器的端口映射 6. 配置ngi ...
- 手把手教你配置哔哔点啥
手把手教你配置哔哔点啥 有一些闲言碎语不知道去哪说,所以搭建了一个哔哔点啥页面 一.服务部署 1. 首先保证成功激活腾讯云开发 2. 点击一键部署至云开发 3. 进入环境-登录授权,启用"匿 ...
- 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式
在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...
- 老唐手把手教你配置security,并增加JWT校验(copy就用)。
老唐手把手教你配置security,并增加JWT校验(copy就用). 1.首先配置security 1.1导入security的jar包 1.2配置security配置文件(直接上代码) 2.JWT ...
最新文章
- turtlebot雷达模块
- 机器人把大龙拉出来_LECW4D1综述:塞拉斯一日三登赛场 IgNar机器人重现江湖
- CHIL-SQL-FIRST() 函数
- RabbitMQ(二):mandatory标志的作用
- 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice
- python股票涨势_stock
- python 依据某几列累加求和_关于Python数组求和的四个问题及详解,让你更加爱Python!...
- 对linux做一个简单介绍,对“Fork”做一个技术方面的简介
- 语法分析器自动生成工具一览
- Swift傻傻分不清楚系列(十二) 属性
- Python【01】【基础部分】- A
- Android API Guides---Supporting Tablets and Handsets
- 烽火MAS短信服务器配置相关
- 工商管理学python_工商管理专业以数据分析师为目标怎么样?
- java的测试岗位_JAVA测试岗位职责
- MIMO Radar
- win10如何删除输入法_30秒解决Win10下输入法栏消失无法输入中文的难题
- 模拟贷款,设计贷款类Loan,Loan类包括贷款年利率(annualInterestRate),贷款年限(numberOfYears)、贷款额(loanAmount)......
- Windows 批处理(bat) if条件判断语句使用教程
- .NET-15-正则替换
热门文章
- mysql57win10安装配置_Win10 OS安装(配置)MySQL 5.7(解压版)
- linux c实现线程超时退出,c – 如何在另一个线程的超时内唤醒select()
- c语言int转字符串_C语言零基础入门-指针-05
- nacos 本地测试_Nacos注册中心落地实践
- oracle 解锁 账户_oracle用户解锁三种方法
- java激光图,java-OpenCV Android跟踪激光点
- cookie记录了服务器相关的信息,使用cookie记录信息(精选).ppt
- linux 优先级必须为整数,进程友好性(优先级)设置对Linux没有影响
- 人声处理_人声美化:人声后期处理方法
- 你愿意隐姓埋名一辈子吗?