简介
我服务器是centos7的,用来做开发测试的,但是我编辑代码是在本地编辑的,每次编辑完了之后都要重新上传到服务器上,想着的就是能不能编辑完了之后保存了之后自动同步到服务器上面
查了一下,还真有,vscode用sftp插件就可以实现在本地编辑好代码之后保存只会自动同步到服务器上
插件安装
打开VSCODE,点击【插件】,然后搜索sftp
,找到sftp/ftp sync
这个插件,点击【安装】
插件设置
安装好了之后在自己电脑上新建一个文件夹,用来存储服务器上的文件的
打开vscode,打开刚刚新建的文件夹
打开之后按【ctrl+shift+p】,在弹出来的输入框中输入SFTP:Config
回车之后打开一个配置文件
更具自己的情况修改配置文件
~~{ "name": "My Server", //名称,自定义 "host": "localhost", //服务器地址,填写自己的服务器地址 "protocol": "sftp", //默认 "port": 22, //默认 "username": "username", //填写登录服务器时用的用户名 "remotePath": "/", //同步的文件夹,是用绝对路劲 "uploadOnSave": false, //是否保存自动同步,默认false为不同步,需要自动同步改为true "useTempFile": false, //默认 "openSsh": false //默认 }~~
新配置文件
{
"name": "PHP测试", //名称自定义
"host": "192.168.99.26", //服务器地址
"protocol": "sftp", //默认
"port": 22, //服务器端口,根据自己情况来,一般默认是22
"username": "root", //服务器用户名
"password": "************", //服务器密码
"remotePath": "/www/wwwroot/192.168.99.26", //同步的文件夹
"downloadOnOpen": true, //是否下载打开文件,true为是,false为否
"uploadOnSave": true, //是否自动同步,true为是,false为否,这个不能同时和下面的watcher同时用,两个选一个
"useTempFile": false, //默认
"openSsh": false, //默认
"ignore": [ //忽略同步的文件
".vscode",
".git",
".DS_Store"
],
"watcher": {
"files": "**/*",
"autoUpload": true, //文件变更会自动同步,包括修改和重命名
"autoDelete": false //是否同步删除文件,false为否,true为是
}
}
以下是我的配置
配置好了之后点击保存,这时候发现右边选项栏里面多了一个图标,这个就是sftp的图标
可以点击图标查看服务器上的文件,这时候提示需要你输入服务器的登录密码
输入密码回车之后就可以看到文件了,但是在这个里面看到的文件只能看,不能编辑的
编辑文件
右键需要编辑的文件夹,点击【Download Folder】把文件下载下来
这时候在返回本地文件就可以看到刚刚下载下来的文件夹了,可以打开编辑了,里面还有一个.vscode
文件夹,这个是不能删除的,sftp的配置文件在这个里面,如果删除了就需要重新配置了
打开一个文件,可以看到目前代码是一样的,左边的是我在宝塔里面打开的,右边是在本地打开的
这个时候我在本地上修改文件保存,会自动同步到服务器上去
这时候就已经成功了,但是如果你关闭vscode之后重新打开,从新同步的时候会让你再次输入密码,因为你关闭vscode之后之前的连接已经断开了,从新打开要同步的话需要从新连接
如果不想每次关闭后打开需要重新输入密码的话需要修改配置文件的,打开配置文件
在配置文件中添加下面代码
"password": "你服务器的登录密码"
添加完成之后保存,下次关闭vscode之后在重新打开修改同步的时候就不需要在输入密码了
注意
在服务器上删除、新建和修改文件vscode并不会自同步下来,需要自己手动在下载一次,可以理解为这个只是单向的同步,是用vscode自动上传到服务器,服务器那边修改后并不会自动下载到本地,需要自己手动下载,同时,在vscode的资源管理器中删除的文件只会删除本地的,并不会删除服务上的,想要删除服务器上的需要点击右边的sftp插件的那个图标进去删除才能从服务器中删除。同样你在服务器上删除的文件本地上文件并没有删除,需要自己手动删除,即使你在vscode的sftp插件里面从新下载文件夹他里面的文件也不会删除,需要手动在本地上删除。