Eclipse хорош, но, как и любой другой инструмент: он становится лучше после того, как я настроил его для своих особых нужд. Eclipse хранит множество настроек в рабочей области, см. Мою статью о копировании настроек моей рабочей области . Но есть ли способ применить некоторые настройки к каждому рабочему пространству? По крайней мере, для новых? Потому что импорт / экспорт настроек может быть очень утомительным, так как у меня много рабочего пространства. И действительно, там есть глобальные настройки в затмении. И я хочу, чтобы они изменились …
Предупреждение: изменение глобальных настроек eclipse может нарушить установку eclipse. Так что лучше иметь резервную копию измененных файлов под рукой!
Здесь я использую CodeWarrior на основе Eclipse для MCU10.2 , но все вещи практически одинаковы для любого продукта на основе Eclipse (см. Документацию в разделе « Определение собственных глобальных настроек» ).
Вопрос: где хранятся глобальные настройки? Первое, что нужно проверить, это папка eclipse \ configuration \ .settings: здесь некоторые плагины хранят свои глобальные настройки. Например: последние настройки рабочего пространства находятся в org.eclipse.ui.ide.prefs.
#Fri Apr 06 16:46:14 CEST 2012 RECENT_WORKSPACES_PROTOCOL=3 MAX_RECENT_WORKSPACES=10 SHOW_WORKSPACE_SELECTION_DIALOG=true eclipse.preferences.version=1 RECENT_WORKSPACES=C\:\\tmp\\wsp_test\nC\:\\tmp\\wsp_10.2
Но как насчет всех других настроек? Глядя на установку CodeWarrior, внутри папки eclipse я нахожу файл cwide.ini .
Этот файл определяет параметры запуска eclipse для запуска IDE (cwide.exe для CodeWarrior). Интересная часть этой строки:
-Declipse.pluginCustomization=cwide.properties
Это говорит eclipse использовать cwide.properties в качестве файла конфигурации по умолчанию. Если я проверю этот файл, он будет иметь следующее содержимое:
org.eclipse.debug.ui/org.eclipse.debug.ui.switch_perspective_on_suspend=always org.eclipse.debug.ui/org.eclipse.debug.ui.switch_to_perspective=always org.eclipse.ui.editors/spellingEngine=org.eclipse.cdt.internal.ui.text.spelling.CSpellingEngine
Хорошо, это дает мне представление о том, как могут выглядеть настройки. Но вопрос: как узнать настройки и синтаксис? Что работает (большую часть времени) следующий подход:
- Запустите затмение с новым рабочим пространством
- Экспортируйте настройки, используя Файл> Экспорт> Общие> Настройки в файл.
- Измените настройки в Window> Preferences
- Экспортируйте настройки, используя File> Export> General> Preferences в другой файл
- Сравнить / проверить экспортированную информацию и найти настройки
- Примените настройки к файлу cwide.properties без / instance / part
- Перезапустите IDE и проверьте, работает ли он с новым рабочим пространством.
Последняя проверка необходима, так как не все настройки могут работать таким образом, см. Этот пост на форуме .
Это может быть лучше всего проиллюстрировано на примере. Я настроил мое рабочее пространство для использования 2 для ширины вкладок и для вставки пробелов для вкладок:
Если я сравню два экспортированных файла .epf, это даст мне:
Это означает, что две следующие строки настраивают то, что я изменил:
/instance/org.eclipse.ui.editors/tabWidth=2 /instance/org.eclipse.ui.editors/spacesForTabs=true
Для файла cwide.properties мне нужно обрезать / instance / part, поэтому я добавил это в cwide.properties :
# Set tab width to 2 org.eclipse.ui.editors/tabWidth=2 # Using spaces for tabs org.eclipse.ui.editors/spacesForTabs=true
Примечание. Предпочтения применяются в следующем порядке: глобальные настройки, затем локальные настройки (рабочая область).
Это НЕ перезаписывает существующую настройку моего рабочего пространства. Как я вижу из diff, мои первоначальные настройки рабочего пространства не имеют никаких настроек для tabWidth и spaceForTabs. Создавая новое рабочее пространство, используйте и применяйте мои новые настройки. Но как только я получу их, они не будут перезаписаны новыми глобальными. Что имеет смысл: местные настройки выигрывают.
Примечание. Оставьте комментарий, если вы знаете изящный способ принудительно / перезаписать настройки рабочего пространства глобальными.