改服务器上的代码,以前要么用 vim(不熟),要么改完 scp 传(容易覆盖错)。VSCode 的 Remote-SSH 插件解决了这个问题:本地界面、服务器文件、服务器终端,三者一体。
装什么
本地 VSCode 装扩展 Remote - SSH。服务器不用装 VSCode Server,第一次连接时会自动下载到 ~/.vscode-server。
连上去
Ctrl+Shift+P → Remote-SSH: Connect to Host → 输入 root@1.2.3.4。或者写进 ~/.ssh/config 方便复用:
Host blog
HostName 1.2.3.4
User root
Port 22
IdentityFile ~/.ssh/id_rsa
配好之后直接选 Host 名字就行。用密钥登录比密码好,省得每次输。
打开项目
连上之后 File → Open Folder,选 /www/blog-ai。这时候文件树是服务器上的,改动直接落盘,不需要同步。
终端也是服务器上的,Ctrl+~ 打开就能跑:
cd /www/blog-ai && .venv/bin/python app/serve.py
我常用的几个配置
.vscode/settings.json:
{
"python.defaultInterpreterPath": "/www/blog-ai/.venv/bin/python",
"files.exclude": {"**/__pycache__": true, "**/*.pyc": true},
"editor.formatOnSave": true,
"python.linting.enabled": true
}
指定解释器很重要,否则 Pylance 会用服务器的系统 Python 做补全,虚拟环境里的包全部标红。
几个坑
- 磁盘占用:
~/.vscode-server会越积越大,时不时清一下旧版本目录,能省几百 M。 - 断线:网络不稳时连接容易掉,正在跑的命令会断。长任务用
tmux或nohup包一层,别指望远程终端一直在。 - 端口转发:本地调试 web 服务,VSCode 会自动把服务器端口转发到本地,浏览器访问
localhost:8800就能看到服务器上跑的服务。这个功能比开公网端口安全得多。 - 中文输入法:某些版本远程终端里中文输入有问题,装个终端插件或者换用本地终端连 ssh。
值不值得
如果只是偶尔改一个配置文件,vim 更快。但如果是持续开发、要跳转定义、要跑测试、要看日志,远程开发体验明显好。我现在基本不在本地跑项目了,环境跟线上一模一样,少了一整类“本地能跑线上不行”的问题。
- THE END -
最后修改:2022年9月17日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://mi-blog.cn/archives/662
共有 0 条评论