qpp
1
vscode用的是1.50版的便携版.
在finalshell中设置外部编辑器为vscode, 然后双击服务器上的某文件, 就被vscode打开了.
问题是, 之后如果关闭finalshell软件, 在vscode中仍然可继续编辑并保存, 也没有报错. 然后再打开finalshell, 发现白编辑了, 做的修改都丢了.
用everything查了一下, 在windows找不到新编辑的文件. 所以, 编辑的文件到哪里去了?
在vscode设置中, 没找到backup相关的. 整个win硬盘中也没有\code\backups这样的文件夹.
试了一个vscode扩展local history, 发现只是备份了local文件, 这种网络的没有
w568w
2
很显然,当你点击文件后发生的事是:
- FinalShell 下载文件(不妨叫
/home/user/a.txt
)到本机某临时位置,例如(仅举例,实际上不在该位置)C:\Temp\a.txt
中;
- FinalShell 调用
vscode C:\Temp\a.txt
打开该临时文件;
- 你做编辑。修改了
C:\Temp\a.txt
;
- 你关闭 VSCode,FinalShell 检测到编辑器进程结束,检查
C:\Temp\a.txt
,发现有更改;
- FinalShell 上传文件覆盖远程文件
/home/user/a.txt
。
如果在编辑时关掉 FinalShell,自然没有 4、5 两步,所以文件就不会变。
如果想知道编辑了哪个文件,何必在 everything 中查?VSCode 里直接右键 Tab 标签条就看到了。
正如上所述,整个过程 VSCode 毫不知情,它仅是在编辑普通的本地文件,它应该不知道任何和远程有关的事情,甚至不知道这是和远程文件有关的文件。
另外,VSCode 本身就有时间线功能,不需要什么第三方插件,它会保存任意编辑过文件的信息。时间线的储存位置在 <VSCode 设置目录>/History
下,例如 C:\Users\<username>\AppData\Roaming\Code\User\History
。
没有用过,不太清楚。
另外,VSCode 本身就是全功能 Shell + 文件编辑器,可以取代任意 Shell 工具了。直接在 VSCode 中用远程连接功能连接你的服务器即可。
2 个赞
对呀,VS Code 里打开最近的文件应该有你修改的路径,并且可以再次打开。
另外最新版本: 1.87.2 了
1 个赞
qpp
4
试过win7最高支持的1.7好像是, 有点问题, 最终又回到1.5了
qpp
5
确实如你所说, 在finalshell下的一个文件夹中, 现在大致了解过程了