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

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

8 ответов


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

TL; DR:

преобразование из 2 пространств в 4 пространства:

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

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

Go кому:

View -> Indentation

следует читать:

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

выберите:

  • Convert Indentation to Tabs

Выберите:

  • Tab width: 4
  • Convert Indentation to Spaces

сделано.


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

"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],

я нашел в своем уме более простое решение, чем Магне:

на mac:

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

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

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


пока много из предложений работают преобразовывая Космос 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" }
]

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

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

заменить на 4 пробелов, или что вы хотите, как \t.


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


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

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

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


проще всего было,

изменил отступ на вкладки

и это решило мою проблему.

вы можете сделать то же самое,

с пробелами

а также в соответствии с вашими потребностями.

упомянул снимок того же самого.

enter image description here