一、引言
在 Linux 的开发过程中,我们难免会遇到这样的场景:
我们需要编辑修改远端服务器上的某个文件,或者需要对远程服务端上的某个项目进行二次开发。
但是在这个基础上,我们并不希望对已有的代码进行不能控制的未知的修改。
我们该怎么办呢?
能够达到这个需求的,我了解到的,有 UltraEdit 这个软件,它有一个 FTP 工具,并且提供了一个比较友好的界面交互,供程序员直接修改远程服务端的文件。
另外,我们也可以通过 WinSCP 或者 FileZilla 等等 sftp 传输工具,打开远程服务端的目录结构,然后使用本地编辑器进行编辑修改。
但是,上述的方法,都不是非常方便。对于程序员来说,我们想要的,无非就是:
1. 能够修改远程服务端的文件
2. 能够实时比对自己的修改信息
3. 能够对于自己修改的文件进行版本管理
就这 3 点要求,不论是 UltraEdit 还是 WinSCP/FileZilla 都不能很好的支持。
那么,到底怎样才能够方便我们在 Windows 上进行远程服务端文件的修改呢?也就是说,如何在 Windows 上搭建一个非常方便的远程服务端的编程环境呢?
答案就是这篇博客的主题:vs code + git + sftp 插件。
二、vs code + git + sftp 插件
vs code 是一款非常强大并且持续更新的文本编辑器,类比产品 sublime text。git 是一款非常好的版本管理工具,其本身就集成在了 vs code 之中。
sftp 是 vs code 的一款扩展插件,支持了 sftp 功能,可以提供与 sftp 相关的操作,比如浏览远程目录文件、上传文件、下载文件,同时还提供了同步到本地、同步到远程目录的功能。另外,其提供了我最喜欢的功能,也就是比对功能,可以实时比对本地与远程文件的不同。可以说 sftp 是一款非常强大并且易用的插件了。
我们只需要安装了 vs code 之后,在扩展中搜索 sftp,点击作者为 liximomo
的那款插件进行安装即可。
三、sftp 插件的初始化配置
sftp 插件的使用是非常简单的,前提是你必须要使用 vs code 打开一个文件夹才能进行 sftp 命令的响应。当你刚安装好 sftp 插件,你需要先配置 sftp 配置:
{
"host": "host",
"username": "username",
"remotePath": "/remote/workspace",
}
类似这样,如果想要配置其他的详细信息,可以参看 sftp 插件作者的文档:
Config
配置完了之后,输入 Ctrl + Shift + P
然后输入 sftp 就可以看到 sftp 插件的命令列表:
这里,为了测试我们是否联通了远程服务端,我们使用 sftp:List All 命令,然后按照提示输入远程目录、密码,如果成功显示出来了目录结构,那么就证明你的 sftp 配置没有问题:
但是如果,你遇到了诸如 Handshake failed: no matching client->server cipher
的错误,你就需要看看你配置 sftp.json 是不是有问题,相关问题可以参考下我的另一篇博客:
vs code 插件 sftp 错误 Handshake failed: no matching client->server cipher 问题解决
至此,你就拥有了一套非常实用的远程服务端的编程环境了。
接下来,我来示范下简单的使用方式。
四、示例:远程服务端的 hello 程序
这里,我使用虚拟机 Ubunut 18.04 环境进行示范。
1. 远端指定目录浏览
2. 下载文件
3. 创建本地文件 Git 版本管理
4. 修改 hello.c 文件,进行远端对比
5. 提交本地 Git 管理
6. 推送远端修改
7. 测试用:修改远端 hello.c
8. 拉取远端修改
五、总结
vc code + git + sftp 的三板斧,可以说让我们在 Windows 上编写远程服务端代码变得容易了很多。既有 vs code 优雅的编写体验,又有 sftp 强大的同步功能,还不缺少 git 上一道版本管理的保险。可以说是大大优化了开发体验。
对于 UltraEdit,我真的喜欢不了,臃肿、混乱外加落后。
我还是更加看好 vs code 的未来,它将成为新一代最伟大的文本编辑器!
To be Stronger:)