Как исправить/конвертировать отступы в Sublime Text?

Пример. Если у меня есть документ с отступом в 2 раза, и я хочу, чтобы у него было 4 отступа пространства, как я могу автоматически преобразовать его с помощью редактора Sublime Text?

Ответ 1

Здесь аккуратный трюк в Sublime Text 2 или 3, чтобы преобразовать интервал отступов в документе.

TL; ДР:

Преобразование из 2 пробелов в 4 пробела:

Убедитесь, что ширина закладки установлена ​​равной 2. Преобразуйте отступ в 2 пробела к вкладкам, переключитесь на ширину вкладки 4, а затем преобразуйте отступ назад в пробелы.

Подробное описание:

Перейдите к:

View -> Indentation

Он должен читать:

  • Indent using spaces [x]
  • Tab width: 2

Выбрать:

  • Convert Indentation to Tabs

Затем выберите:

  • Tab width: 4
  • Convert Indentation to Spaces

Готово.

Ответ 2

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

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

detect_indentation: false особенно важен, поскольку он заставляет Sublime соблюдать эти настройки в каждом файле, а не в настройках View -> Indentation.

Если вы хотите получить фантазию, вы также можете определить комбинацию клавиш для автоматического повторного ввода кода (YMMV), вставив следующее в Sublime -> Preferences -> Key Binding - User:

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

и визуализировать пробелы:

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],

Ответ 3

Я нашел, на мой взгляд, более простое решение, чем Magne:

На mac:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

В окнах или других платформах измените cmd+f и alt+enter на любые ваши find и select all горячие клавиши.

Примечание. Этот метод подвержен "ошибкам", если в вашем коде имеется более одного места. Таким образом, он менее безопасен, чем метод Магне, но он быстрее (по крайней мере для меня).

Ответ 4

В то время как многие из предложений работают при преобразовании 2 → 4 пространства. Я столкнулся с некоторыми проблемами при преобразовании 4 → 2.

Вот что я в итоге использовал:

Sublime Text 3/Packages/User/to-2.sublime-macro

[
  { "args": null, "command": "select_all" },
  { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
  { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
  { "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
  { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]

Ответ 5

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

Найти (regex): (^|\G) {2} (Вместо "{2}" <space>{2} вы можете просто написать два пробела. Используется здесь для ясности.)

Замените 4 пробела или что угодно, например \t.

Ответ 6

Я написал для него плагин. Вы можете найти здесь здесь или искать "ReIndent" в управлении пакетами. В основном он делает то же самое, что написал Кайл Финли, но удобным способом с ярлыками для преобразования между 2 и 4 и наоборот.

Ответ 7

Вы должны добавить этот код к своим пользовательским привязкам клавиш:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

нажимая ctrl + f12, он будет повторно прикреплять ваш файл к размеру вкладки 4. Если вам нужен другой размер вкладки, вы просто изменяете значение "значение". Формат Te - простой json.