Как исправить / преобразовать отступ пространства в возвышенном тексте?


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

8 207

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

The 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