Как заставить Sublime Text сделать отступ в два пробела на вкладке?

504

Есть ли способ заставить Sublime Text 2 всегда делать два отступа на вкладке при работе с файлами Ruby?

Я знаю, что отступ можно установить в view -> indentationпункте меню, но он не прилипает. Каждый раз, когда я открываю новый файл и нажимаю вкладку, он возвращается к четырем пробелам.

Мохамад
источник
Sublime немного отличается / странно по умолчанию. Хотя он может сохранить файл с несколькими пробелами, редактор самостоятельно удаляет оба пробела, если идентифицирует его как отступ.
Лайм

Ответы:

899

Если вы хотите это для всех файлов, перейдите к Preferences -> Settings - Default/User. Но, как показывают несколько комментариев ниже, настройки, специфичные для синтаксиса, могут ограничивать его только выбранными вами языками.

Чтобы ограничить эту конфигурацию файлами Ruby, сначала откройте файл Ruby в редакторе, а затем перейдите к Preferences -> Settings - Syntax Specific. Это должно открыть окно настроек с именемRuby.sublime-settings

Сохраните эти настройки:

{
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "detect_indentation": false
}

Повторите эти действия для любых других типов синтаксиса, открыв файл этого типа и вернувшись к настройкам, чтобы открыть правильный файл настроек для этого синтаксиса.

Я отредактировал это, чтобы включить строку "detect_indentation" для запросов в комментариях; Ранее я использовал Default / User для установки размера вкладки и не нуждался в обнаружении вкладок, но не знаю, связано ли это с глобальной конфигурацией или с тем фактом, что я редко открывал файлы с вкладками.

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

DGM
источник
11
Из сборки 2181. Вы можете настроить параметры в Предпочтения -> Настройки - По умолчанию / Пользователь. Лучше всего поставить его в настройках пользователя, так как это намеченный подход.
Кевин Джалберт
20
@KevinJalbert (и DGM) На самом деле он должен поместить это в специфические настройки синтаксиса, чтобы это влияло только на файлы Ruby.
Пол Хоффер
6
Обратите внимание, что значение является истинным, а не «истинным».
earthmeLon
1
Это особенно полезно, поскольку документация на собственном веб-сайте Sublime Text неправильно предлагает использовать camelCase вместо подчеркивания в установочных ключах ... все же. ( sublimetext.com/docs/indentation )
Эрик Голдберг,
@EricGoldberg - я не уверен, как вы попали на эту страницу документации, но если вы перейдете на sublimetext.com > Support, и в разделе Documentation нажмите ссылку Sublime Text 2, вы попадете на sublimetext.com/docs/2 - оттуда вы можете найти документы по отступам, а ключи настройки правильно используют подчеркивание: sublimetext.com/docs/2/indentation.html
jbyrd
166

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

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}
Джеймс Шевалье
источник
Спасибо за совет! Без detect_indentationвыключения я получал очень странное поведение (неправильно определял отступ и использовал его вместо того, что я указал в моих настройках).
Джейкоб Эвелин
Делать это в настройках по умолчанию работал для меня. Убедитесь, что вы посмотрите, если настройка уже существует. Если вы добавите его, и он будет позже объявлен как true, он останется установленным как true.
Дэвид
3
Помните, что изменения настроек по умолчанию будут перезаписаны обновлениями Sublime Text и т. Д. Изменения настроек пользователя не будут перезаписаны.
Джеймс Шевалье
6
БЛАГОДАРЮ ВАС!! "detect_indentation":falseявляется критическим еще другие параметры игнорируются. наконец-то!
zzzeek
Это хороший момент, но твой пример неуместен ;-)
snow6oy
88

Это также можно сделать с помощью текстовой ссылки в нижней панели Sublime Text 2 (справа), в которой по умолчанию написано «Размер вкладки 4», щелкните ее, и появится окно с параметрами для установки размера вкладки из 1 пробела. вплоть до 8 пробелов и включает опции для преобразования табуляции в пробелы и пробелы во вкладки.

Выглядит так:

Параметры вкладки в Sublime Text 2

Taskism
источник
3
Отличный совет, но знаете ли вы, если это становится липким урегулированием? Например, изменение отступа в верхней строке меню относится только к текущему открытому файлу, а не к другим, что было моей первоначальной проблемой.
Мохамад
5
Это не работает . Это хороший совет, но он не липкий: закрытие и повторное открытие файла (или открытие другого файла) возвращает отступ в четыре пробела.
Мохамад
1
Да, это не липко, это за файл. Вы должны перейти в настройки Sublime Text, чтобы установить настройки по умолчанию для вкладок / пробелов.
Taskism
Это решило мою проблему в Sublime Text 3. Спасибо!
Адриан
29

Могу ли я предложить EditorConfig ? Существует расширение для автозагрузки и применения .editorconfigфайла. Затем просто создайте его в корне вашего проекта.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

Таким образом, ваши настройки зависят от проекта и файла, если вы используете разные стили для каждого проекта или языка.


Вот как .editorconfigвыглядит моя собственная .

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
Nate
источник
2
Я не хотел делать это глобальным изменением. Так что это было единственное решение, которое сработало. Я провел небольшое исследование в EditorConfig, и это выглядит очень хорошо для IDE, которые его поддерживают.
Нил Монро
1
Так уж сложилось, что у меня уже был .editorconfig в моем проекте, и я даже не знал об этом. (angular-cli генерирует единицу)
uglycoyote
9

Я использую пакет Stupid Indent .

Install Package -> Stupid Indent

Preferences-> Package Settings-> Stupid Indent->Setting-Users

Скопируйте настройки ( Rubyчасти) в.

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}
Рана
источник
да это то, что мне нужно: D
Драгутеску Александру
Потрясающие. Большое спасибо :)
krithikaGopalakrisnan
ВНИМАНИЕ . Глупый отступ по умолчанию и пользовательские настройки заставляют перезаписывать параметры Sublime Text и EditorConfig . Спасибо.
Саша Черных
1

Я следовал за предыдущими ответами, включая добавление строки detect_indentation, и мои вкладки были все еще пятью пробелами. Тогда я понял, что выбор Preferences -> Settings -> More -> Syntax Specific -> Userиз рубинового файла открывал Ruby on Rails.sublime-settingsдля меня, а не Ruby.sublime-settings.

Я переименовал свой Ruby on Rails.sublime-settingsфайл в Ruby.sublime-settings. Наконец два пробела сработали! Я пошел вперед и ввел те же самые настройки Ruby on Rails.sublime-settings, чтобы быть уверенным.

Тим Келькебек
источник