关闭 IntelliJ 自动保存为什么你真的不需要手动保存

2022-08-31 12:46:31

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

您可能知道在使用IntelliJ(我使用14.0.2)时,它经常自动保存文件。对我来说,在Java或JavaScript文件中进行更改时,在保存更改之前大约2秒。人们会认为应该对此产生影响,例如“设置”>“外观和行为”>“系统设置”>“同步”,>“如果应用程序空闲X秒,则自动保存文件”。不过,这些设置似乎对我没有任何影响,IntelliJ仍然会自动保存,例如,如果我需要向上滚动以记住我引用的方法是如何执行某些操作的。

当我有自动制作时,这真的很令人沮丧,这搞砸了TomCat,或者在进行JS开发时通过Grunt,Karma等观看文件。他们最近有没有一个神奇的设置?有没有人想过如何关闭自动保存,或者实际上延迟它?


答案 1

它不能完全禁用。它是IDE功能的核心,并高度集成到其操作中,包括其开放API(用于插件)。关闭它会导致许多功能出现问题。

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

Screenshot of synchronization settings

禁用这些设置后,IDEA仅在主要事件(例如构建,运行make,运行测试或应用程序等)上自动保存。<EDIT>还应该注意的是,插件作者可以访问调用自动保存的FileDocumentManager.saveAllDocuments()方法。这也是删除此功能会有问题的另一个原因。</EDIT>在文件中向上滚动不应该是触发自动保存的事件(除非第三方插件正在这样做)。我等了整整15分钟来验证 - 没有自动保存。如果您看到不同的行为,我建议您打开一个错误报告(https://youtrack.jetbrains.com)。您需要提供尽可能多的详细信息,因为IDEA 14.0.2已经发布了相当长的一段时间,并且没有关于自动保存问题的报告。

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

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

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

编辑

您是否通过 IntelliJ IDEA 运行/调试配置启动 Tomcat?如果是这样,您是否将该“运行/调试”配置中的“帧停用时”选项设置为“更新”选项之一?这将导致文件更改。


答案 2

您可以通过启用节能模式来禁用重新编译。

当“省电模式”处于打开状态时,IntelliJ IDEA 通过不执行消耗笔记本电脑电池的昂贵后台活动,将其功能降低为文本编辑器的功能。这些活动包括错误突出显示和动态检查、自动弹出代码完成和自动增量后台编译

或者,或者如果您认为这有点太极端,请将Tomcat的更新操作更改为“无所事事”。