Vscode和finalshell问题

vscode用的是1.50版的便携版.

在finalshell中设置外部编辑器为vscode, 然后双击服务器上的某文件, 就被vscode打开了.
问题是, 之后如果关闭finalshell软件, 在vscode中仍然可继续编辑并保存, 也没有报错. 然后再打开finalshell, 发现白编辑了, 做的修改都丢了.

用everything查了一下, 在windows找不到新编辑的文件. 所以, 编辑的文件到哪里去了?

在vscode设置中, 没找到backup相关的. 整个win硬盘中也没有\code\backups这样的文件夹.

试了一个vscode扩展local history, 发现只是备份了local文件, 这种网络的没有

很显然,当你点击文件后发生的事是:

  1. FinalShell 下载文件(不妨叫 /home/user/a.txt)到本机某临时位置,例如(仅举例,实际上不在该位置)C:\Temp\a.txt 中;
  2. FinalShell 调用 vscode C:\Temp\a.txt 打开该临时文件;
  3. 你做编辑。修改了 C:\Temp\a.txt
  4. 你关闭 VSCode,FinalShell 检测到编辑器进程结束,检查 C:\Temp\a.txt,发现有更改;
  5. 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 个赞

试过win7最高支持的1.7好像是, 有点问题, 最终又回到1.5了

确实如你所说, 在finalshell下的一个文件夹中, 现在大致了解过程了