1 使用sftp同步远程代码
打开vscode,在扩展种搜索sftp,点击安装。
按住快捷键shift+ctrl+p,可以打开界面顶部的命令行,输入sftp,点击如下图的config选项:
会自动在.vscode目录下创建一个名为sftp.json的文件,内容如下图所示:
根据自身情况,按照如下内容对应修改即可:
{
"name": "My Server",
"host": "远程ip地址",
"protocol": "sftp",
"port": 远程端口号,
"username": "用户名",
"password": "密码",
"remotePath": "远程存放代码的路径",
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/logs/**",
"**/__pycache__/**"
],
"watcher": {
"files": "*",
"autoUpload": true,
"autoDelete": true
},
"uploadOnSave": true,
"downloadOnOpen":false,
"useTempFile": false,
"openSsh": false
}
完成后,我们可以发现左侧栏多了一个纸张上面一朵云的SFTP图标。此时,我们可以在资源管理器空白处右击鼠标,可以看到Sync Local -> Remote
选项,点击它,我们就可以把当前vscode窗口打开的代码文件夹同步到远程服务器上了,同步路径就是上面json配置文件所填写的。
在同步时,如果细心点,我们可以观察到,vscode左下角的状态栏会一直跳动(如下图所示),显示local的哪个文件正在同步到remote上。当然这个过程很快就完成了。
同步完成后,我们可以刷新并打开远程代码路径,即可看到同步上去的代码了。
2 使用remote-ssh运行远程终端及内容修改
同样,在扩展界面搜索remote-ssh,安装。
安装完成后可以在左侧菜单栏看到多了一个远程资源管理器的图标(一个电脑两个对着的尖括号)。单击该图标,右上角选择remote:
然后点击SSH栏右侧的加号,会在vscode顶部弹出一个栏,根据提示填写即可,内容为ssh 用户名@远程ip:端口号
,其中:端口号
非必须选项,如果有就要填写。填写完成后回车默认保存即可。
完成后可以在remote窗口看到新添加的远程连接选项,可以右键,选择在当前窗口或者是新建窗口中进行远程连接。
比如我们选择在新窗口中建立连接的话,就会弹出一个新的vscode窗口,首先需要我们选择远程平台的类型,服务器的话一般都是linux。接下来会继续要求我们输入密码,输入并回车即可。
成功连接上以后,我们就进入到远程终端了,可以看到左下角绿色矩形显示了当前的连接状态,是SSH远程服务器的。在当前vscode里的所有修改都是针对远程的。我们可以选择新建文件创建新的文件,也可以选择打开远程的文件或者文件夹。
ssh-remote的用处可不止是修改远程代码,我觉得一个更重要的功能是,在remote环境下,我们可以在vscode中打开远程的终端了,这样就可以使用终端来运行远程的代码。
3 配合使用
基于这两个插件,我们就可以实现将本地代码和远程代码进行同步,以及对远程代码或文件进行增删修改等操作了。但是我们是在本地进行代码修改然后同步到远程,还是直接修改远程的代码然后同步回来,这是需要明确的。不然如果两边都进行了不同的修改,就有可能会产生冲突了。我的一个使用策略就是,在本地进行代码修改,完成后通过sftp将本地代码同步到远程,然后使用ssh-remote的远程终端,在远程运行代码。然后在本地修改的代码,也可以及时使用git同步到云端,这样更稳妥些。
运行远程代码时候也要注意,有可能因为没有配置好环境变量,我们无法直接使用python、pip、conda等命令,需要指定到conda的bin目录然后执行,也即:
/opt/conda/bin/python3
/opt/conda/bin/pip
/opt/conda/bin/conda
export PATH=$PATH:/usr/bin/
export PATH=$PATH:/opt/conda/bin/
举个例子,比如要用pip安装numpy,命令为:
/opt/conda/bin/pip install numpy
参考:
vscode本地与服务器远程同步代码
vscode连接远程服务器(傻瓜式教学)
VSCode 使用ssh远程链接服务器时报错 Downloading VS Code Server failed