关闭 IntelliJ 自动保存

Turning off IntelliJ Auto-save

我已经对这个问题进行了大量的谷歌搜索,我发现的大多数线程都是 2 年以上的,所以我想知道是否有任何变化,或者是否有新的方法来解决这个问题与此主题相关的问题。

正如您在使用 IntelliJ(我使用 14.0.2)时可能知道的那样,它通常会自动保存文件。对我来说,在 Java 或 Java 脚本文件中进行更改时,大约需要 2 秒才能保存更改。有些选项人们会认为应该对此产生影响,例如设置 > 外观和行为 > 系统设置 > 同步 > 如果应用程序空闲 X 秒,则自动保存文件。这些设置似乎对我没有影响,而且 IntelliJ 仍然会自动保存,例如,如果我需要向上滚动以记住我引用的方法是如何做某事的。

当我进行 JS 开发时,这真的很令人沮丧,因为它搞砸了 TomCat,或者通过 Grunt、Karma 等监视文件。他们最近有没有设置魔法?有没有人想出如何关闭自动保存,或者实际上延迟它?

无法完全禁用。它是 IDE 功能的核心,并大量集成到其操作中,包括其 Open API(用于插件)。关闭它会导致很多功能出现问题。

您可以同时禁用 Save files on frame deactivationSave files automatically if idle for x seconds 设置(通过 文件 > 设置 > 外观和行为 > 系统设置):

禁用这些设置后,IDEA 只会自动保存重大事件,例如构建、运行 制造、运行 测试或应用程序,等等 <编辑>还应该注意插件作者可以访问 FileDocumentManager.saveAllDocuments() method that invokes the auto-save. This is also one more reason why removing this functionality would be problematic.</EDIT> Scrolling up in a file should not be an event to trigger auto save (unless a third party plugin is doing such). I waited a good 15 minutes to verify - no auto-save. If you are seeing different behavior, I would recommend you open up a bug report (https://youtrack.jetbrains.com)。您需要提供尽可能多的详细信息,因为 IDEA 14.0.2 已经发布了很长一段时间并且没有关于自动保存问题的报告。

请注意,我已打开 设置 > 编辑器 > 常规 > 编辑器选项卡 > Mark Modified tabs with asterisk 以验证文件未自动保存。 (即,即使在长时间闲置之后,当我重新激活 IDEA 帧时,星号仍然存在。)你打开它了吗? 除了自动保存之外,它可能还有别的东西这导致其他工具看到文件更改。启用星号选项将有助于确定这一点。

为什么你真的不需要手动保存

还应注意,您始终可以访问 Local History。 Local History 不断跟踪(并记录)对项目所做的所有更改。它允许您轻松地将文件或整个目录恢复到以前的状态(甚至是未保存的状态)。因此,由于无法完全控制何时保存文件而导致的任何功能损失都可以通过此功能来弥补。当我在 2003 年第一次开始使用 IntelliJ IDEA 时,我发现自动保存功能很奇怪,并且觉得我失去了一些控制权来确定何时需要将文件包含在重新编译中。但是当我使用 IntelliJ IDEA 时,我很快(在一两周内)意识到这是一种错误的控制感。在本地历史记录、变更列表和搁置变更的能力之间,我最终拥有了更多的控制权,同时也没有浪费时间试图弄清楚为什么我最近的变更不起作用,却发现我忘了保存一个我改变的文件。我从不喜欢这个功能转变为非常喜欢它。我鼓励那些看到自动保存为 "limitation" 甚至 "deal breaker" 的人尝试一下,然后看看。这将需要对您的个人工作流程进行一些更改,我认为最终您将拥有更好的工作流程。在过去 16 年多的时间里,我一直在使用 IDEA。

编辑

您是通过 IntelliJ IDEA run/debug 配置启动 Tomcat 吗?如果是这样,您是否将 Run/Debug 配置中的 "on frame deactivation" 选项设置为 "Update" 选项之一?这会导致文件更改。

您可以通过enabling Power Save Mode禁用重新编译。

When Power Save Mode is on, IntelliJ IDEA reduces its functionality to the one of a text editor, by not executing expensive background activities that drain laptop battery. These activities include error highlighting and on-the-fly inspections, autopopup code completion , and automatic incremental background compilation.

或者,如果您认为这有点过于极端,请将 Tomcat 的更新操作更改为 "Do Nothing"。

坏消息是:无法为 intellij & Co.(JetBrains Webstorm 等)禁用自动保存。我丢失了一些工作,因为我按了几次 CTRL-Z 来获取一些较旧的代码,因为我按了 "z" 的错误,我不能再按 CTRL-Y 了。我无法在其他程序中保持文件打开,因为它一直在变化,而另一个程序要求我每天刷新一百次...

好消息:有一些解决方法。请看以下内容(方括号中的引用指向我评论的底部):

来自intellij官方支持网站[1]:

«调整自动保存行为

以下选项可用于调整自动保存行为(文件 | 设置 | 外观和行为 | 系统设置):

在框架停用时保存文件(即从 IntelliJ IDEA 切换到不同的应用程序时)

如果应用程序空闲 N 秒,自动保存文件

请注意,这些是可选的自动保存触发器,您无法完全关闭自动保存。»

另请查看网站 [2](我评论的底部),您可以在其中找到其他解决方法和更多详细信息,如下所示:

«在设置 → IDE 设置 → 常规

取消选中 "Synchronize files on frame activation" → 取消选中 "Save files on frame deactivation"

如果可以,请取消选中 "Save files if application is idle for"。如果显示为灰色,请将其设置为 6442450 秒(约 74 天)...»

最后是安装eclipse,选择深色皮肤。没有什么是完美的,但是...

编辑:[2] 中描述的关于设置大数字的选项不是必需的,除非某些东西变灰并且您不能禁用自动保存...我需要测试它。

啊...下一个问题就是找到"save"button/command。 intelliJ Ctrl+S 是 "Save all" ...

[1] https://www.jetbrains.com/idea/help/saving-and-reverting-changes.html#d1542336e137

[2]https://intellij-support.jetbrains.com/hc/en-us/community/posts/207054215-Disabling-autosave

我认为正确答案是上面 ryanlutgen 的评论:

由于提到的自动保存选项,"auto-saving" 您的文件的行为不是

IJ 将所有更改保存到您的构建源以自动构建目标。

可以在以下时间关闭:

Preferences -> Build,Execution,Deployment -> Compiler -> Make project automatically.

注意:现在必须手动启动项目构建(例如,通过使用适当的快捷键)

(所有其他 "auto-save" 选项只是在自动保存行为中微调构建。)

我也偶然发现了这个。除了已经给出的所有答案之外,可能还有另一个原因:在我的情况下,这是由于我安装的 SonarLint 插件。该插件会对每个接触的文件进行自动分析,并将在后台执行 auto-safe。

当我禁用某些文件类型(例如 TypeScript/JavaScript 文件)进行自动分析时,最终这些文件不再自动保存在 IntelliJ 中。

在最新的 intellijpycharm ide 中,使用以下选项禁用自动保存。

文件 -> 设置 -> 外观和行为 -> 系统设置 -> 切换到其他应用程序时保存文件(取消选中

如果有任何文件观察器处于活动状态(首选项>工具>文件观察器),请务必检查它们的高级选项。禁用任何自动保存文件以触发观察器 切换。

此选项取代 Autosave 选项,来自 Preferences>Appearance & Behaviour>System Settings

如果你使用的是流程,你也应该禁用那里的自动保存。

首选项 -> 语言和框架 -> Javascript