用VSCode对云服务器文件进行在线编辑

背景

前两天用上了macOS后发现Mac下没有很好用的SCP应用(也有可能是我还没发现)。用推荐比较多的FileZilla后发现也不如Windows下强大的WinSCP。
说起WinSCP,最让我怀念它的倒不是极其方便的上传文件功能,毕竟scp命令也没多长,不用工具也可以解决,而是它可以右键服务器上的文件进行在线编辑,感觉比较方便。(对于vim掌握不熟练的我来说)

WinSCP~SCP for Windows

突发奇想,想看看我们越来越流行,越来越强大的VSCode有没有好的解决方案,还真的搜到了~~~在美国简书Medium上找到了一篇(原文作者和我有很相似的历程hh):

Editing files in your Linux Virtual Machine made a lot easier with Remote VSCode

环境

  • 本地:macOS+VSCode
  • 服务器:CentOs 7.3

Remote VSCode

  1. 打开VSCodeVSCode下载
  2. 进入插件页,搜索“Remote VSCode”

VSCode plugin store

  1. 安装插件并重启VSCode
  2. 打开服务器,并执行以下命令
    $ sudo wget -O /usr/local/bin/rmate https://raw.github.com/aurora/rmate/master/rmate
    $ sudo chmod a+x /usr/local/bin/rmate

  3. 回到VSCode打开命令窗(Command + Shift + P)并执行 >Remote: Start Server

    (这一步是开启macOS的52698端口,保持TCP连接,等待请求)

  4. OK之后,在VSCode内打开一个新的终端输入以下命令连接到你的Linux服务器:
    $ ssh -R 52698:localhost:52698 VIRTUAL_MACHINE_IP_ADDRESS

    (VIRTUAL_MACHINE_IP_ADDRESS 就是你的服务器IP地址)

  5. 在你的VSCode终端内,执行rmate命令来编辑你想编辑的文件。会看到服务器上的文件内容会在VSCode里面自动就显示出来啦~这时你再保存也是同步保存到服务器上的。你也同样可以在VSCode的终端里执行命令比如 python test.py 之类。也就是说只需要一个VSCode就可以完成连接、编辑、保存、执行操作。(就差一个SFTP上传了~,SFTP上传插件也找到了,这个暂时没需求,下次再试一下嘿嘿)

VSCode plugin store

为什么是52698?
52698是Remote VSCode插件的默认端口,你可以在“User Preference”页面内搜索”Remote VSCode configuration”来改变它。

VSCode plugin store