tabs - template - sublime text tab space size




Texto Sublime 3, converter espaços em abas (5)

Eu sei que há muitos posts sobre isso, mas eu não consegui fazê-lo funcionar.
Eu uso guias para codificação. Existe uma maneira, para converter sempre espaços para guias? Ou seja, em aberto e em Salvar arquivos? Alguém tem uma ideia?

// edit:
Meu desejo é fazer isso automaticamente ! -> abrir, salvar ou na mosca
Alguém sabe como fazer?


Eu tentei this :

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')

E aqui estão as configurações do meu usuário:

{
    "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
}


Aqui está uma solução que irá converter automaticamente para guias sempre que você abrir um arquivo.

Crie este arquivo: .../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")

NOTA. Isso faz com que o arquivo fique em um estado não salvo depois de abri-lo, mesmo que nenhuma conversão real de espaço para tabulação tenha ocorrido ... talvez alguns possam ajudar com uma correção para isso ...


Na parte inferior da janela do Sublime, você verá algo que representa sua configuração de guia / espaço.

Você então terá uma lista suspensa com várias opções. As opções que você gosta são:

  • Converter recuo para espaços
  • Converter recuo em tabulações

Aplique a configuração desejada em todo o documento.

Espero que isto ajude.


No canto inferior direito da sua janela de texto Sublime, você verá um indicador de recuo que se parece muito com isso:

Clicar nele abrirá um menu com opções para ajustar suas preferências de recuo e, mais importante, para converter espaços em tabulações e vice-versa.

O mesmo menu está listado em View -> Indentation .


Para converter automaticamente espaços para guias ao salvar , adicione o seguinte script Python a uma subpasta recém-criada chamada "UnexpandTabsOnSave" em "$ SUBLIME_HOME $ \ Packages \":

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' )

Obrigado pelo recurso inicial.