Как изменить режим отступа в Atom?

195

Я еще не смог понять это. Atom, похоже, использует пробелы в качестве режима отступа по умолчанию. Я предпочитаю иметь вкладки вместо этого, хотя. Sublime Text имеет встроенную функциональность для переключения и преобразования отступов.

Кто-нибудь узнал, как изменить режим отступа Atom?

Несколько скриншотов из Sublime Text:

Открытое меню отступа Sublime Text Меню возвышенного текста с отступами

Джон Купс
источник
4
для преобразования отступов вы можете найти и заменить регулярное выражение и использовать \ t для поиска или вставки вкладок.
mer10z_tech
1
Есть ли простой способ изменить текущий код на 4 из 2 режима отступа?
Чарли Паркер
1
Я использую плагин автоопределения отступов, который не только автоматически настраивает клавишу табуляции, чтобы сделать то, что уже находится в файле, но и отображает режим отступа внизу слева.
while1fork
@CharlieParker Вы можете перейти к настройкам, щелкнуть вкладку редактора и установить отступ на 4.
Крейг
Примечание: Atom по умолчанию показывает и пересекает пробелы, такие как вкладки! Смотрите ответ tparker здесь: stackoverflow.com/a/46333677/1599699
Эндрю

Ответы:

219

См. « Мягкие вкладки» и « Длина вкладок» в разделе « Настройки»> «Настройки редактора» .

Чтобы быстро переключать режимы отступа, вы можете использовать Ctrl-Shift-P и искать редактор: Toggle Soft Tabs .

Блом
источник
1
Как сказал @zamber, если при автоматическом отступе страницы не отображаются настройки отступа, откройте ее и попробуйте снова.
Виктор С,
58
Как примечание: мягкие вкладки - это пробелы в виде вкладок, жесткие вкладки - это символы табуляции. Также, если настройки не соблюдаются, попробуйтеCtrl-Shift-P Editor: Toggle Soft Tabs
ivan-k
2
Я хотел бы добавить, что ни одно из решений в этой теме не работало для меня, пока я не переключился на моноширинный шрифт. После переключения на моноширинный шрифт я попробовал каждый метод, и все они действительно работают. Надеюсь, это поможет кому-то в будущем ...
Родной кодер
Есть ли простой способ изменить текущий код на 4 из 2 режима отступа?
Чарли Паркер
Я не вижу никакой выгоды в том, чтобы НЕ использовать моноширинный шрифт при кодировании, я должен признать.
Фрэнк Бейли
65

Перейти в Файл -> Настройки

Здесь есть 3 варианта.

  1. Мягкие вкладки
  2. Длина вкладки
  3. Тип вкладки

Я провел некоторое тестирование и пришел к этим выводам о том, что каждый из них делает.

Soft Tabs - Включение этого означает, что он будет использовать пробелы по умолчанию (то есть для новых файлов).

Длина вкладки - насколько широко отображается символ вкладки или сколько пробелов вставляется для вкладки, если включены программные вкладки.

Тип вкладки - это определяет режим отступа для использования с существующими файлами. Если вы установите его в автоматический режим, он будет использовать существующие отступы (табуляции или пробелы). Если вы установите его на soft или hard, он будет принудительно использовать пробелы или табуляции независимо от существующего отступа. Лучше всего оставить это на авто.

Примечание: Soft = пробелы, Hard = Tab

developerbmw
источник
Вы также можете поговорить об атомных мягких вкладках ?
neeh
3
Есть ли простой способ изменить текущий код на 4 из 2 режима отступа?
Чарли Паркер
1
Спасибо за помощь в разъяснении некоторых языков, которые Atom использует для понимания этой проблемы.
MiFiHiBye
23

Добавьте это к вашему ~/.atom/config.cson

editor:
    tabLength: 4
Лейф Грюнвольдт
источник
15

OS X:

  1. Перейти к Atom -> prefrencesилиCMD + ,

  2. Прокрутите вниз и выберите «Длина вкладки», который вы предпочитаете.

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

Саид Холов
источник
11

Вы можете попробовать перейти в «Atom> Preferences> Editor» и установить длину вкладки равной 4.

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

Это для Mac. Для окон вам нужно будет найти соответствующее меню.

Craig
источник
7

Добавление ответа @Manbroski здесь, который работал для меня:

пытаться Ctrl-Shift-P Editor: Toggle Soft Tabs

оборота ОскарРыз
источник
6

Позднее, но чистый способ сделать это для каждого проекта - добавить файл .editorconfig в корневой каталог проекта. Спасает вас от необходимости изменять настройки Atom, когда вы работаете над несколькими проектами одновременно.

Это образец базовой настройки, которую я сейчас использую. Работает на Atom, ST и т.д ...

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2
ConorLuddy
источник
Я почти полностью выбросил Атом, пока не увидел это. Настройки config.cson, похоже, абсолютно ничего не делают для существующих файлов. Спасибо!
killhrush
3

Это встроено в ядро: посмотрите Settings ⇒ Tab Typeи выберите auto:

Если установлено значение «auto», редактор автоматически определяет тип вкладки на основе содержимого буфера (он использует первый начальный пробел в строке без комментариев) или использует значение параметра конфигурации Soft Tabs, если автоматически Обнаружение не удается.

Вы также можете взглянуть на пакет Auto Detect Indentation . Из документов:

Автоматически обнаруживать отступ открытых файлов. Он просматривает каждый открытый файл и устанавливает параметры вкладок для конкретного файла (жесткие / программные вкладки, длина вкладок) на основе содержимого файла, а не всегда использует значения по умолчанию для редактора.

Возможно, вы настроили атом для использования 4 пробелов для вкладок, но откройте проект rails, который по умолчанию имеет 2 пробела. Без этого пакета вам пришлось бы изменить глобальные настройки табуляции или рискнуть получить непоследовательный интервал между вашими файлами.

jcuenod
источник
Если вы используете 'auto', и это неправильно (в моем случае решено использовать пробелы, когда я хочу вкладки для этого конкретного файла), как вы (с быстрым меню или нажатием клавиши, не углубляясь в настройки) передумаете? Я не думаю, что автоопределение не удалось, оно просто неправильно. Для меня это не будет жесткой вкладкой. Я делал поиск и замену везде, но все же клавиша табуляции вставляет 4 пробела.
Эд Рэндалл
Я бы не использовал, search-and-replaceя бы использовал командную палитру convert spaces to tabs(или что-то в этом роде). Я думаю, что это сработало для меня в прошлом.
jcuenod
3

У меня просто была такая же проблема, и ни одно из предложенных выше предложений не сработало. Наконец, я попытался снять флажок «Атомные программные вкладки» в меню настроек редактора, и это сработало.

tparker
источник
ОЙ! Вот что это значит! Мне было интересно, почему мои клавиши со стрелками пропускали пробелы, когда их не было \tв файле ...
Эндрю
2

Если вы используете Babel, вы также можете обновить пакет «Language Babel». Для меня, несмотря на то, что в настройках основного редактора для меня была установлена ​​длина вкладки 2, параметр Same в конфигурации Language Babel заменял ее на 4.

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

Убедитесь, что есть соответствующая грамматика, есть «Бабель ES6 Javascript Grammar», «Грамматика language-babel-extension», а также «Регулярное выражение». Вы, вероятно, хотите обновить все из них, чтобы быть последовательными.

Майк М
источник
2

Управление вкладками дает хороший контроль, аналогичный описанному в вашем вопросе.

Также хорошо для разработчиков JavaScript есть длина вкладки ESLint для использования конфигурации ESLint.

Или, если вы используете .editorconfigдля определения правил отступа для конкретного проекта, есть EditorConfig

Бретт Замир
источник
1

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

Эд Хэлферти
источник
1

Когда автоматическое обнаружение отступа в Atom безнадежно ошибалось и не позволяло мне печатать буквальный символ табуляции, я в конце концов обнаружил расширение «Force-Tab», которое вернуло мне контроль. Я хотел сохранить Shift-Tab для отступа, поэтому установите Ctrl-Tab, чтобы вставить жесткую вкладку. В моей раскладке я добавил:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'

Эд Рэндалл
источник
1

Если вы используете версию 1.21.1:

  1. Нажмите на Пакеты / Настройки Просмотр / Открыть
  2. Выберите «Редактор» на левой боковой панели
  3. Прокрутите вниз, пока не увидите «Длина вкладки»
  4. Отредактируйте значение. Мне нравится устанавливать его на 4.

Теперь просто закройте активную панель вкладок, и все готово.

Caiuby Freitas
источник
0

Все самые популярные ответы здесь - это отличные ответы, и они будут содержать пробелы для вкладок, но все они упускают одну вещь. Как применить пробелы вместо вкладок к существующему коду.

Для этого просто выберите весь код, который вы хотите отформатировать, затем перейдите в Edit-> Lines-> Auto Indent, и он исправит все выбранное.

В качестве альтернативы, вы можете просто выбрать весь код, который вы хотите отформатировать, затем использовать Ctrl Shift P и искать Auto Indent. Просто щелкните по нему в результатах поиска, и он исправит все выбранное.

ajpieri
источник
0

Изменение языковой конфигурации

Я изменил настройки вкладки по умолчанию, и это все равно не повлияло на редактирование моих файлов, которые были файлами Python. Это также не изменилось, когда я изменил настройку "*" в ~ / .atom / config.cson. У меня нет хорошего объяснения ни одному из них.

Однако, когда я добавил следующее в свой config.cson, я смог изменить вкладку в моих файлах Python на 2 пробела:

'.source.python':
  editor:
    tabLength: 2

Спасибо этому ресурсу за решение: клавиша Tab не учитывает длину табуляции

МК Охотник
источник