Подтвердить что ты не робот

Отключение IntelliJ Auto-save

Я сделал довольно много поисковых запросов по этому вопросу, и большинство тем, которые я нашел, - это 2+ года, поэтому мне интересно, изменилось ли что-то или если есть новый метод решения проблемы к этой теме.

Как вы можете знать при использовании IntelliJ (я использую 14.0.2), он часто автозапускает файлы. Для меня при внесении изменений в файлы Java или JavaScript за 2 секунды до сохранения изменений. Есть варианты, которые, как можно было бы подумать, должны были повлиять на это, такие как "Настройки" > "Внешний вид и поведение" > "Системные настройки" > "Синхронизация" > "Сохранить файлы" автоматически, если приложение не используется в течение X секунд. Эти настройки, похоже, не влияют на меня, хотя IntelliJ все еще автосохраняется, например, если мне нужно прокрутить вверх, чтобы вспомнить, как метод, на который я ссылаюсь, что-то делает.

Это действительно разочаровывает, когда у меня есть автоматическое создание, которое испортит TomCat или просматривает файлы через Grunt, Karma и т.д. при разработке JS. Есть ли волшебная настройка, которую они недавно добавили? Кто-нибудь понял, как отключить автосохранение или на самом деле задержать его?

4b9b3361

Ответ 1

Вы можете отключить перекомпиляцию с помощью включения режима энергосбережения.

Когда включен режим энергосбережения, IntelliJ IDEA снижает свою функциональность до текстового редактора, не выполняя дорогостоящие фоновые действия, которые сбрасывают батарею ноутбука. Эти действия включают в себя проверку ошибок и проверки "на лету", завершение кода автозапуска и автоматическую инкрементную сборку фона.

В качестве альтернативы, или если вы считаете, что это слишком экстремально, измените действие обновления для Tomcat на "Ничего не делать".

Ответ 2

Это не может быть полностью отключено. Он является ядром функциональности среды IDE и тесно интегрирован в ее работу, в том числе с открытым API (для плагинов). Отключение может вызвать проблемы с большим количеством функций.

Вы можете отключить Save files on frame deactivation и Save 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 отсутствовал в течение достаточно долгого времени, и нет никаких сообщений о проблеме с автосохранением.

Обратите внимание, что у меня есть Настройки> Редактор> Общие> Вкладка Редактор> Mark Modified tabs with asterisk чтобы убедиться, что файл не сохраняется автоматически. (то есть звездочка остается даже после длительного простоя и после повторной активации кадра IDEA.) Вы это включили? Это может быть что-то еще помимо автосохранения, которое заставляет другие инструменты видеть изменение файла. Включение опции звездочки поможет определить это.

Почему вам действительно не нужно сохранять вручную

Следует также отметить, что у вас всегда есть доступ к местной истории. Местная история постоянно отслеживает (и записывает) все изменения, внесенные в проект. И это позволяет вам легко вернуть файл или весь каталог обратно в предыдущее состояние (даже несохраненные). Таким образом, любая предполагаемая потеря функциональности из-за отсутствия полного контроля над сохранением файла восполняется этой функцией. Когда я впервые начал использовать IntelliJ IDEA в 2003 году, мне показался странным функционал автосохранения, и я почувствовал, что потерял некоторый контроль, чтобы определить, когда мне нужны файлы, включенные в перекомпиляцию. Но когда я использовал IntelliJ IDEA, я быстро (через неделю или две) понял, что это ложное чувство контроля. Между местной историей, списками изменений и возможностью хранения изменений у меня в конечном итоге был намного больший контроль, и в то же время я не тратил время на то, чтобы выяснить, почему мои недавние изменения не сработали, только чтобы понять, что я забыл сохранить один из файлов, которые я изменил. Я переключаюсь с того, что мне не нравится эта функция, и она мне абсолютно не нравится. Я бы посоветовал людям, которые рассматривают автоматическое сохранение как "ограничение" или даже как "нарушитель условий сделки", просто попробовать и посмотреть. Это потребует некоторых изменений в вашем личном рабочем процессе, я думаю, что в итоге у вас будет лучший рабочий процесс. Я не пропустил это в последние 16+ годы, когда я использовал IDEA.

РЕДАКТИРОВАТЬ

Вы запускаете Tomcat через конфигурацию запуска/отладки IntelliJ IDEA? Если да, есть ли у вас опция "on frame deactivation" в этой конфигурации Run/Debug, установленная на одну из опций "Update"? Это может привести к изменению файлов.

Ответ 3

Я думаю, что правильный ответ был дан как комментарий от ryanlutgen выше:

В результате автоматического сохранения вашего файла не из-за упомянутых опций автоматического сохранения.

IJ сохраняет все изменения в источниках сборки для автоматической сборки цели.

Это можно изменить в:

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

Примечание: теперь нужно инициировать сборку проекта вручную (например, с помощью соответствующего сочетания клавиш)

(Все остальные опции "автосохранения" просто настраивают сборку в режиме автоматического сохранения.)

Ответ 4

Плохая новость: невозможно отключить автосохранение для intellij & Co. (JetBrains Webstorm и т.д.). Я потерял некоторую работу, потому что я нажимал CTRL-Z несколько раз, чтобы взять какой-то старый код, по ошибке я нажал "z" и больше не мог делать CTRL-Y. Я не могу оставить файл открытым в других программах, потому что он все время меняется, а другая программа просит меня обновляться сто раз в день...

Хорошее новое: есть несколько обходных путей. Просто посмотрите следующее (ссылки в квадратных скобках указывают на нижнюю часть моего комментария):

С официального сайта поддержки Intellij [1]:

"Настройка поведения автосохранения

Для настройки поведения автосохранения доступны следующие параметры (Файл | Настройки | Внешний вид и Поведение | Системные настройки):

Сохраняйте файлы при деактивации фрейма (т.е. При переключении из IntelliJ IDEA в другое приложение)

Сохранять файлы автоматически, если приложение не используется в течение N секунд

Обратите внимание, что это дополнительные триггеры автосохранения, и вы не можете полностью отключить автосохранение ".

Пожалуйста, также проверьте веб-сайт [2] (внизу моего комментария), где вы можете найти другие обходные пути и более подробную информацию, а именно:

"В настройках → Настройки IDE → Общие

снимите флажок "Синхронизировать файлы при активации фрейма" → снимите флажок "Сохранить файлы при деактивации фрейма"

если можете, снимите флажок "Сохранить файлы, если приложение не используется". Если он серого цвета, установите его на 6442450 секунд (около 74 дней)... "

Последнее - установить Eclipse и выбрать темный скин для него. Ничто не идеально, но...

РЕДАКТИРОВАТЬ: опция, описанная в [2] об установке большого числа, не нужна, если только что-то не серое и вы не можете отключить автосохранение... Мне нужно проверить это.

Ах... следующая проблема - найти кнопку/команду "сохранить". В intelliJ Ctrl + S - это "Сохранить все"...

[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

Ответ 5

Я тоже наткнулся на это. Помимо всех ответов, которые уже были даны, может быть и другая причина: в моем случае это было связано с установленным плагином SonarLint. Этот плагин выполняет автоматический анализ каждого файла, к которому вы прикасались, и автоматически защищает его.

Когда я отключил определенные типы файлов (например, файлы TypeScript/JavaScript) для автоматического анализа, наконец, эти файлы больше не сохранялись автоматически в IntelliJ.

SonarLint settings window to exclude file (types)