Я знаю, что есть много постов об этом, но я не мог´t получить его на работу.<БР> Я использую вкладки для кодирования. Есть ли способ, чтобы преобразовать пробелы в табуляцию? Т. е. на открытии и сохранении файлов? У кого-нибудь есть идеи?
// редактировать:<БР> Мое желание, чтобы сделать это автоматически! -> открыть, сохранить или на лету<бр> Кто-нибудь знает, как это сделать?
<БР>я пробовал это:
import sublime, sublime_plugin, os
class ExpandTabsOnSave(sublime_plugin.EventListener):
# Run ST's 'expand_tabs' command when saving a file
def on_pre_save(self, view):
if view.settings().get('expand_tabs_on_save') == 1:
view.window().run_command('expand_tabs')
И вот мои настройки пользователя:
{
"auto_complete_selector": "source - comment, meta.tag - punctuation.definition.tag.begin",
"auto_indent": true,
"detect_indentation": true,
"draw_white_space": "all",
"ensure_newline_at_eof_on_save": true,
"expand_tabs_on_save": true,
"font_face": "SourceCodePro-Regular",
"font_size": 10,
"format_on_save": true,
"ignored_packages":
[
"Vintage"
],
"indent_to_bracket": true,
"open_files_in_new_window": false,
"smart_indent": true,
"tab_size": 4,
"translate_tabs_to_spaces": false,
"trim_automatic_white_space": true,
"trim_trailing_white_space_on_save": true,
"use_tab_stops": false,
"word_wrap": false
}
В правом нижнем углу вашего возвышенного текстовом окне, вы'увидите индикатор отступа, который очень похож на этот:
Нажатие на нее открывает меню с опциями, чтобы настроить отступ предпочтения, и что более важно, преобразования пробелов в символы табуляции и наоборот.
Такое же меню находится в списке посмотреть -> отступ
.
В нижней части возвышенное окно, вы'll увидеть нечто, представляющее ваши вкладки/пространства.
Вы'МР тогда вам выпадающий список с кучей вариантов. Варианты вы заботитесь о:
Нанесите желаемый параметр ко всему документу.
Надеюсь, что это помогает.
Как вы уже знаете, вы можете настроить параметры отступов в предпочтениях.возвышенное-настройках, например:
"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false
Это позволит установить ваш редактор использовать вкладки, 4 широких пространств и переопределить поведение по умолчанию, которая вызывает возвышенное, чтобы соответствовать абзацный отступ любой файл, который вы'повторного редактирования. С этими параметрами, повторно выделить файл вызовет пробелы должны быть заменены с вкладками.
Насколько автоматически отступы при открытии файла, что's не так просто (но возможно это'т отличная идея, поскольку изменения пробельных символов сводят на нет различия файл). Что может быть лучшим курсом действий: вы можете карта ярлык для повторного отступ и просто триггер, который при открытии нового файла, который нужно исправить.
В моем случае, эта линия решена проблема:
"translate_tabs_to_spaces": false
Вот это решение, которое автоматически конвертирует в закладках, когда вы открываете файл.
Создать этот файл: .../Packages/User/on_file_load.py
:
в
import sublime
import sublime_plugin
class OnFileLoadEventListener(sublime_plugin.EventListener):
def on_load_async(self, view):
view.run_command("unexpand_tabs")
Примечание. Он вызывает файл, чтобы быть в неспасенном состоянии после его открытия, даже если нет реального пространства-в разделе преобразование которой не состоялось... может быть, некоторые из них могут помочь это исправить...
Для автоматического преобразования пробелов в символы табуляции сохранить, добавьте следующий скрипт Python для вновь созданной папке под названием "UnexpandTabsOnSave" в рамках " по$SUBLIME_HOME$\пакеты\" и:
import sublime, sublime_plugin, os
class ConvertSpacesToTabsOnSave( sublime_plugin.EventListener ):
# Run Sublime's 'unexpand_tabs' command when saving any file
def on_pre_save( self, view ):
view.window().run_command( 'unexpand_tabs' )
Спасибо за первоначальный ресурс.
Вы можете сделать замену табуляций пробелами в все файлы проекта путем:
\^а(.*)$
ваш Дир
\1
Вы можете включить эти настройки, перейдя в Настройки-и меню и gt; Настройки и добавлять содержимое в файл настроек:
"ensure_newline_at_eof_on_save-то": Правда,
"trim_trailing_white_space_on_save-то": Правда,
Вид -и GT; показать консоль (Ctrl+
)и выполнить команду:
импорт нарезания резьбы; резьбонарезные.Резьбы( параметр args=(значение(),), цель=лямда counterset: [ (посмотреть.run_command (на "expand_tabs наша" {"и set_translate_tabs-то": Правда} ), печати (на "обработка {:>5} вид {:>5}, Посмотреть ИД {} {} себе".формат( лен( counterset ) + 1, лен( окна.вид() ), вид.идентификатор(), ( "по завершении конвертирования!" если лен( counterset ) > лен( окна.вид() ) - 2 еще на " глаз" ) ) ), counterset.добавить( лен( counterset ) ) ) для просмотра в окне.просмотров() ] ).пуск()`Файл "- & " и GT; сохранить все
Вот как вы сделать это автоматически при сохранении: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
К сожалению, пакет не работает, когда вы установите его в менеджере пакетов.