Как мне изменить Eclipse, чтобы использовать пробелы вместо вкладок?


895

По умолчанию отступы Eclipse с жестким символом табуляции. Как я могу изменить это на пробелы?


43
@ i3ensays, потому что вкладки представлены по-разному в разных редакторах или средах, а пробелы всегда согласованы.
mmmdreg

29
@ Мммдрег, точно моя точка зрения. пространства жесткие и расточительные. Использование вкладок дает зрителю свободу настраивать свой редактор по своему усмотрению. Мне нравится, что мои вкладки отображаются как 2 пробела, мой коллега 4. Это невозможно без использования вкладок. Мой коллега здесь, и я, места битвы, когда мы каждый форматируем в нашем соответствующем редакторе; вкладки не проблема; Вот почему они были изобретены (я подозреваю).
i3ensays

15
@ i3ensays аминь, брат! Я пытаюсь заставить людей понять эту концепцию более 10 лет ( rizzoweb.com/java/tabs-vs-spaces.html ). Что меня действительно тревожит, так это то, что, как программисты, вы думаете, что все поймут концепцию абстракций (вкладка - это абстракция отступа в коде, а фиксированное число пробелов - жестко запрограммированная реализация) - но, увы, кажется, что многие программисты не могут видеть абстракцию здесь.
E-Riz

28
@ i3ensays Ваша команда должна иметь стандарт кодирования, в котором четко указано, как форматируется код. Это сэкономит время, предотвратив битвы, о которых вы упомянули. Вы должны принять как можно скорее, но этот стандарт на 100% определенно скажет, что вкладки никогда не должны использоваться, потому что эту священную войну выиграли «космические люди» давным-давно, поэтому стандарт вам не поможет. Помимо проблем с выравниванием, одной из главных причин использования пробелов является то, что инструментам контроля версий и рецензентам кода не придется иметь дело с этой проблемой. Я начал на вашей стороне эту битву 20 лет назад, но в конце концов научился принимать пространство.
Ночная сова

12
Причина в том, что люди неизбежно получат комбинации вкладок и пробелов, и в некоторых редакторах код будет отображаться неправильно. Если все просто используют пробелы, то это никогда не проблема.
Имонн МакЭвой

Ответы:


1239

Редактор Java

  1. Нажмите Окно » Настройки
  2. Развернуть Java » Стиль кода
  3. Нажмите Форматер
  4. Нажмите кнопку Изменить
  5. Нажмите вкладку Отступ
  6. Под Общими настройками установите вкладку политики на:Spaces only
  7. Нажмите кнопку ОК до тошноты, чтобы применить изменения.

[ Примечание : при необходимости сохраните профиль с новым именем, поскольку профиль по умолчанию не может быть перезаписан.]

Текстовый редактор по умолчанию

До версии 3.6:

Window->Preferences->Editors->Text Editors->Insert spaces for tabs

Версия 3.6 и позже:

  1. Нажмите Окно » Настройки
  2. Развернуть Общее » Редакторы
  3. Нажмите Текстовые редакторы
  4. Проверьте Вставить пробелы для вкладок
  5. Нажмите кнопку ОК до тошноты, чтобы применить изменения.

Обратите внимание, что текстовый редактор по умолчанию используется в качестве основы для многих не Java-редакторов в Eclipse. Удивительно, что этот параметр не был доступен до 3.3.

C / C ++

  1. Нажмите Окно » Настройки
  2. Развернуть C / C ++ » Стиль кода
  3. Нажмите Форматер
  4. Нажмите кнопку Создать , чтобы создать новый профиль, затем нажмите ОК, чтобы продолжить.
  5. Нажмите вкладку Отступ
  6. Под Общими настройками установите вкладку политики на:Spaces only
  7. Нажмите кнопку ОК до тошноты, чтобы применить изменения.

HTML

  1. Нажмите Окно » Настройки
  2. Развернуть Сеть » HTML-файлы
  3. Нажмите Редактор
  4. В разделе « Форматирование» установите переключатель « Отступ с использованием пробелов ».
  5. Нажмите кнопку ОК, чтобы применить изменения.

CSS

Следуйте тем же инструкциям для HTML, но выберите файлы CSS вместо файлов HTML .

JSP

По умолчанию файлы JSP соответствуют настройкам форматирования для файлов HTML.

XML

Интервал между файлами XML настраивается в настройках.

  1. Нажмите Окно » Настройки
  2. Развернуть XML » XML файлы
  3. Нажмите Редактор
  4. Выберите отступ, используя пробелы
  5. При необходимости вы можете указать размер отступа: количество пробелов для отступа.

19
Для тех, у кого установлен MyEclipse или любая другая IDE, созданная поверх Eclipse, у вас может быть другой редактор, переопределяющий ваши настройки. Это имело место для MyEclipse и JavaScript. У меня была включена настройка «Вставка пробелов для вкладок» в текстовых редакторах, но вместо пробелов все еще использовались вкладки. Я собирался назвать это днем ​​и списать как ошибку, но затем я увидел второго редактора для файлов JavaScript (* .js) в списке «Связанные редакторы».
Джон

5
Это может быть полезным советом, но если вы испытываете то же самое поведение, проверьте, есть ли у файла другие связанные редакторы, потому что они могут переопределять ваши настройки. Для этого перейдите в «Окно»> «Установки»> «Основные»> «Редакторы»> «Связи файлов»>, затем найдите расширение файла, которое разрушает ваш день в этом списке> щелкните его и посмотрите на приведенный ниже список «Связанные редакторы»
John

106
для существующего файла Java нажмите Ctrl-A, чтобы выделить все, а затем Ctrl-I, чтобы применить текущие отступы. В противном случае существующие вкладки будут препятствовать пробелам в новых строках, созданных с помощью Enter. Он также заменяет существующие вкладки пробелами.
topchef

4
Для C / C ++ необходимо также изменить C / C ++ -> «Стиль кода». Это, безусловно, самая раздражающая в этом, в остальном, отличная программа.
Дашесы

3
Чтобы быть более подробным, для C / C ++ и Ecplipse 3.6 или более поздней версии, вторым шагом было: «Окно»> «Установки»> «C / C ++»> «Стиль кода»> «Форматтер»> «Создать», затем выберите любое имя профиля, убедитесь, что Open the edit dialog nowоно включено, нажмите OK, затем в Indentationвкладку, вы увидите Tab Policy. Установите это Spaces Only.
Гаррет

150

Для текстового редактора по умолчанию:

  • Общее » Редакторы » Текстовые редакторы » Insert spaces for tabs (отметьте это)

Для PHP:

  • PHP » Стиль кода » Форматтер » Tab policy (выберите« пробелы »)
  • PHP » Стиль кода » Форматтер » Indentation size (установлен на 4)

Для CSS:

  • Веб » CSS » Редактор » Indent using spaces (выберите его)
  • Веб » CSS » Редактор » Indentation size (установлен на 4)

Для HTML:

  • Веб » HTML » Редактор » Indent using spaces (выберите его)
  • Интернет » HTML » Редактор » Indentation size (установлен на 4)

Для XML:

  • XML » XML-файлы » Редактор » Indent using spaces (выберите его)
  • XML » XML-файлы » Редактор » Indentation size (установлен на 4)

Для Javascript:

  • Javascript » Настройки » Стиль кода » Форматирование » Редактировать » Indentation (выберите« только пробелы »)
  • Переименуйте профиль настроек форматера, чтобы сохранить его

Для Java:

  • Java » Настройки » Стиль кода » Форматировщик » Редактировать » Indentation (выберите« только пробелы »)
  • Переименуйте профиль настроек форматера, чтобы сохранить его

Я не вижу параметров Web или Javascript в корне настроек (хотя у меня есть веб-перспектива), и я хочу установить вкладки в качестве пробелов только для файлов html, css и javascript. Я нахожусь на Helios Eclipse для разработчиков Java, есть идеи, как я могу получить эту опцию?
Дэнни

Эти настройки - то, что я вижу в Eclipse PDT (Инструменты разработки PHP). Eclipse PDT построен на основе Eclipse WTP (платформа веб-инструментов), которая включает инструменты разработки JavaScript (JSDT) и редактирование исходного кода различных веб-форматов. Это, вероятно, то, что вам не хватает.
Патрик Фишер

+1 для Java, что абсолютно необходимо, потому что его настройки по умолчанию имеют приоритет над общими настройками текстового редактора.
Джулио Пьянкастелли

для C, Стиль кода -> Форматтер -> Правка -> Отступы -> Общие настройки -> Политика вкладок
Эндрю Кук

1
Спасибо! Это хорошо работает на Марсе. Обидно, что опции текстового редактора существуют, но ничего не делают!
Paiego


26

Для CDT :

  • Перейти к окну / настройкам » C / C ++ » Стиль кода » Форматирование » Новый
  • Создайте новый, потому что встроенный профиль не может быть изменен
  • MyProfile (выберите одно имя для профиля)
  • Отступ » Tab Policy (выберите только пробелы)

23

Просто быстрый совет для людей, натыкающихся на эту нить; есть еще одно место, где этот параметр также может быть установлен, в вашем проекте!

Eclipse поддерживает специфичные для проекта настройки, и некоторые проекты будут использовать свои собственные, неуправляемые настройки вкладок / пространств, которые не будут отображаться нигде, кроме свойств текущего проекта.

Это можно сделать через:

  • Щелкните правой кнопкой мыши текущий проект в Package Explorer
  • Свойства » Стиль кода Java
  • Turn от всех вариантов проектов конкретных

Обычно это будет проблемой, если вы импортируете чужой код в Eclipse.


19

Для редактора по умолчанию:

Окно » Настройки » Редакторы » Текстовые редакторы »Insert spaces for tabs

введите описание изображения здесь

Для редактора Java

Окно » Настройки » Java » Стиль кода » Форматирование » Редактировать » Отступ » Tab policy « Только пробелы »

введите описание изображения здесь


9

Когда я столкнулся с этой проблемой, у меня было «использовать пробелы для вкладок», установленное в true везде, где я мог найти, и все же я все еще получал вкладки. Это закончилось тем, что в другом месте файла использовались вкладки, и он пытался сделать умный отступ или что-то расстраивающее.

Это было решено, выбрав все содержимое файла и нажав на Mac command+shift+f. Это применяет данное форматирование к файлу. Я не знаю такой же привязки клавиш в Windows, но попробую. С этого момента я начинаю получать ожидаемое поведение.


Для более модульного решения этой проблемы пользователь также может выполнить поиск / \tзамену для (убедитесь, что регулярные выражения включены) и заменить требуемым количеством пробелов
jlewkovich

Ключ для форматирования файла в Windows очень похож - Ctrl+Shift+F.
Алессио

5

Eclipse IDE для разработчиков на C / C ++, версия: Helios Service Release 2

Вам нужно создать новый профиль, нажав кнопку «Создать» внутри «Окна-> Настройки-> Стиль кода»

Перейдите на вкладку «Отступы» и выберите «Политика вкладок = Только пробел»


Eclipse IDE для разработчиков на C / C ++, версия: Kepler Service Release 1

Следуйте приведенному ниже пути, чтобы создать новый профиль: «Окно> Настройки> C / C ++> Стиль кода> Форматировщик»

Перейдите на вкладку «Отступы» и выберите «Политика вкладок = Только пробел»


5

Обязательно проверьте форматер java, поскольку он перезаписывает параметр «вставить пробелы для вкладок» . Перейти к:

Java->Code Style"->Formatter->Edit->Identation

Примечание: вам нужно будет создать собственный формат, чтобы сохранить вашу конфигурацию.


5

Я нашел решение этой проблемы очень простым и которое работает всегда. Это изменение файла настроек затмения.

Например (изменить размер отступа HTML):


  1. Нашел org.eclipse.wst.html.core.prefs файл, который должен быть вyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Добавить / изменить строку в файле:
indentationChar=space

indentationSize=4

1
В Ubuntu 14.04.03 LTS и eclipse 4.5 я не могу изменить размер идентификатора, он всегда заблокирован и не изменяется. Это решило мою проблему.
TekTimmy

5

Перейдите в Window -> Preferences и введите tab в качестве текста для поиска (который отобразит диалоговое окно, как показано ниже):

введите описание изображения здесь

Перейдите к выделенным разделам, чтобы изменить политику вкладок. Для настроек редактора это в основном отступ с использованием пробелов (также показано выше).

Для настроек Formatter необходимо отредактировать активный профиль и обновить политику вкладок (доступно в разделе « Отступы -> Общие настройки» :

введите описание изображения здесь


3

Окно-> Настройки-> Java-> Стиль кода-> Форматер-> Правка-> Отступ = "Только пробелы"


3

В Eclipse перейдите в « Окно »> « Настройки», затем найдите « Форматтер» .

Вы увидите различные жирные ссылки, нажмите на каждую жирную ссылку и установите ее use spacesвместоtabs .

В ссылке форматера Java, вы должны отредактировать профиль и выбрать политику вкладки, spaces onlyна вкладке отступа


2

Не пропустите политику табуляции для обоих * только пробелов * используйте пробелы для отступа строк

Я проверил только последнюю вещь и оставил Combobox только с вкладками, который продолжал давать сбой CheckStyle .. К вашему сведению, я говорю о Preferences> Java> Formatter> Edit ...


2

В формате Eclipse XML:

Для вкладки:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

Для космоса:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>

0
  • Нажмите Окно »Настройки
  • Развернуть Java »Стиль кода
  • Нажмите Форматер
  • нажмите новый
  • Выберите имя профиля
  • Нажмите ок
  • Нажмите кнопку Изменить
  • Нажмите вкладку Отступ
  • В разделе «Общие параметры» установите для политики вкладки значение «Только пробелы».
  • Нажмите ОК.

0

Также рассмотрите возможность использования файла .editorconfig: https://marketplace.eclipse.org/content/editorconfig-eclipse . Кто-то, кто не использует Eclipse, также может извлечь выгоду из этого, в худшем случае он может служить ориентиром. ПРИМЕЧАНИЕ: я не буду вводить вкладки против космических войн, но буду использовать пробелы FTW :-)


0

В дополнение к другим ответам, в Mac OS X меню «Предпочтения» находится под Eclipse, а не Window (в отличие от дистрибутивов Eclipse для Windows / Linux). Все остальное остается таким же, как указано в других ответах после этого пункта.

IE: Java Formatter доступен под:

Eclipse >      | # Not Window!
Preferences >  |
Java >         |
Code Style >   |
Formatter      |

Отсюда отредактируйте форматер, и политика вкладок может быть установлена ​​в «Отступ».


0

В программе eclipse mars (EE) в Mac OS X единственный способ найти это в настройках - открыть диалоговое окно «Параметры» и ввести «Форматтер», затем выбрать «Java» -> «Стиль кода» -> «Форматировщик».

Java-> Code Style не имеет доступа к Formatter!


0

И не забудьте редактор ANT

По какой-то причине Ant Editor не отображается в результатах поиска для 'tab'или'spaces' может быть пропущен.

Под Windows > Настройки

  • Муравей » Редактор » Форматтер » Tab size: (установлен на 4)
  • Муравей » Редактор » Форматтер » Use tab character instead of spaces (снимите флажок)

0

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

При добавлении этих нижеприведенных переменных настройки будут иметь место a tab= 2 spacesи конвертироваться в пробел, даже если вы, вероятно, используете Tabсокращенную клавишу при кодировании с использованием Eclipse .

<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>    
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="yes"/>

Лучший,

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.