如何防止phpstorm在没有提示的情况下重新加载磁盘上的文件


How to prevent phpstorm to reload file without prompt when file on disk is changed?

当phpstorm打开文件时,我做了一些更改而没有保存。但与此同时,磁盘上的文件也发生了变化。然后phpstorm将从磁盘重新加载文件,没有提示。

  1. Settings/Preferences | Appearance & Behavior | System Settings

  2. 选中Synchronize files on frame activation选项

现在PhpStorm会问你要做什么:你将有几个选项可以选择:

  • 加载文件系统更改(从文件加载外部更改)
  • 保留内存更改(忽略外部更改并继续编辑器中的文本)
  • 显示差异(显示差异视图以查看差异并决定需要手动更改的内容)

@LazyOne的回答与PhpStorm的早期版本有关。在PhpStorm 8.0中,有两个复选框可以提供对文件同步设置的更细粒度的控制:

  1. 在PhpStorm中,通过从菜单中选择Preferences或单击⌘逗号(Mac)或Ctrl+Alt+S (Linux和Windows)打开设置/首选项对话框。
  2. 点击外观&行为,则单击系统设置
  3. Synchronization下,有两个复选框:第一个标记为在帧激活时同步文件,第二个标记为在帧停用时保存文件

复选框的作用如下:

  • 当你从另一个应用程序切换到PhpStorm 时,选中第一个方框将检测并从磁盘重新加载外部文件。
  • 选中第二个方框,每次从PhpStorm切换到另一个应用时,将保存所有修改的文件。
  • 如果你取消复选框,PhpStorm会提供一个简单的提示"File was changed on disk",并提供一个在PhpStorm中重新加载它们的链接。

当PhpStorm和磁盘上更改的文件发生冲突时,你会被要求选择做什么:

  • Load Changes:单击此按钮加载生成的文件版本在PhpStorm之外,并覆盖您的本地更改。
  • Keep Memory Changes:点击此按钮保存PhpStorm中产生的版本并存储在缓存中。
  • Show Difference点击此按钮调用差异查看器,显示左边文件系统中的版本,右边显示PhpStorm的版本。

更多细节可以在PhpStorm文档页面的系统设置和文件缓存冲突页面中找到。