Sei que existem muitos posts sobre isso, mas não consegui fazê-lo funcionar.
Eu uso guias para codificação. Existe uma maneira de converter sempre espaços em guias? Ou seja, abrir e salvar arquivos? Alguém teve uma ideia?
// edit:
Meu desejo é fazer isso automaticamente ! -> abrir, salvar ou em tempo real
Alguém sabe como fazer?
Eu tentei isso :
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 minhas configurações de 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
}
Ctrl + ~
e ver se ele está causando algum erro de plug-in? E se você tiver o Controle de Pacotes instalado, poderá ver seExpandTabsOnSave
está listado como um plug-in instalado?print("debug")
ou semelhante ao plug-in para ver se está sendo executado ou não no salvamento.Respostas:
No canto inferior direito da sua janela Sublime Text, você verá um indicador de indentação semelhante a este:
Clicar nele abrirá um menu com opções para ajustar suas preferências de recuo e, mais importante
Convert Indentation to Tabs/Spaces
,.O mesmo menu está listado em
View -> Indentation
.fonte
Na parte inferior da janela Sublime, você verá algo representando sua configuração de guia / espaço.
Você receberá um menu suspenso com várias opções. As opções importantes para você são:
Aplique a configuração desejada ao documento inteiro.
Espero que isto ajude.
fonte
Como você já deve saber, você pode personalizar suas configurações de recuo
Preferences.sublime-settings
, por exemplo:Isso definirá seu editor para usar guias com 4 espaços de largura e substituirá o comportamento padrão que faz com que o Sublime corresponda à indentação de qualquer arquivo que você estiver editando. Com essas configurações, reentrar o arquivo fará com que quaisquer espaços sejam substituídos por guias.
No que diz respeito à reentrância automática ao abrir um arquivo, isso não é tão fácil (mas provavelmente não é uma ótima idéia, pois as mudanças de espaço em branco causam estragos nas diferenças de arquivo). Qual poderia ser um curso de ação melhor: você pode mapear um atalho para re-indentação e apenas acioná-lo quando abrir um novo arquivo que precise ser corrigido.
fonte
Você pode usar a paleta de comandos para resolver esse problema.
Etapa 1:
Ctrl + Shift + P
(para ativar a paleta de comandos)Etapa 2: digite "Recuo", escolha
"Indentation: Convert to Tabs"
fonte
No meu caso, esta linha resolveu o problema:
fonte
Aqui está uma solução que será convertida automaticamente em guias sempre que você abrir um arquivo.
Crie este arquivo
.../Packages/User/on_file_load.py
::NOTA. Faz com que o arquivo esteja em um estado não salvo após abri-lo, mesmo que nenhuma conversão de espaço para guia tenha ocorrido ... talvez alguns possam ajudar com uma correção para isso ...
fonte
.../Packages/User/on_file_load.py
, não.php
on_load
vez deon_load_async
.Para converter automaticamente espaços em abas ao salvar , adicione o seguinte script Python a uma subpasta criada recentemente chamada "UnexpandTabsOnSave" em "$ SUBLIME_HOME $ \ Packages \":
Obrigado pelo recurso inicial.
fonte
Você pode substituir guias por espaços em todos os arquivos do projeto:
Ctrl+Shif+F
^\A(.*)$
Your dir
Substituir por
\1
Isso fará com que todos os arquivos do projeto sejam abertos, com o buffer marcado como sujo. Com isso, agora você pode habilitar opcionalmente essas próximas configurações de texto sublime, para aparar todos os arquivos com espaço em branco e garantir uma nova linha no final de cada arquivo.
Você pode ativar essas configurações acessando o menu
Preferences -> Settings
e adicionando este conteúdo ao seu arquivo de configurações:"ensure_newline_at_eof_on_save": true,
"trim_trailing_white_space_on_save": true,
View -> Show Console (Ctrl+`)
e execute o comando:import threading; threading.Thread( args=(set(),), target=lambda counterset: [ (view.run_command( "expand_tabs", {"set_translate_tabs": True} ), print( "Processing {:>5} view of {:>5}, view id {} {}".format( len( counterset ) + 1, len( window.views() ), view.id(), ( "Finished converting!" if len( counterset ) > len( window.views() ) - 2 else "" ) ) ), counterset.add( len( counterset ) ) ) for view in window.views() ] ).start()
File -> Save All
fonte
se você possui o Mac, use a opção de ajuda (geralmente a última opção na barra de menus do Mac) e digite: "indentação de tabulação" e escolha uma largura de indentação de tabulação
mas geralmente, você pode seguir este caminho: view -> recuo
fonte
Use o seguinte comando para resolvê-lo:
fonte
Aqui está como você pode fazer isso automaticamente ao salvar: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
Infelizmente, o pacote não está funcionando quando você o instala no Gerenciador de Pacotes.
fonte