Wiem, że jest wiele postów na ten temat, ale nie mogłem go uruchomić.
Używam zakładek do kodowania. Czy istnieje sposób na konwersję zawsze spacji na tabulatory? Czyli na otwartych i na Zapisz pliki? Czy ktoś ma pomysł?
// edit:
Moim pragnieniem jest zrobienie tego automatycznie ! -> otwórz, zapisz lub w locie
Czy ktoś wie jak to zrobić?
Próbowałem tego :
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')
A oto moje ustawienia użytkownika:
{
"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 + ~
i sprawdzić, czy występują jakieś błędy? A jeśli masz zainstalowany pakiet kontroli, czy możesz sprawdzić, czyExpandTabsOnSave
jest wymieniony jako zainstalowana wtyczka?print("debug")
wtyczkę lub podobną wtyczkę, aby sprawdzić, czy jest wykonywana, czy nie przy zapisywaniu.Odpowiedzi:
W prawym dolnym rogu okna Sublime Text zobaczysz wskaźnik wcięcia, który wygląda mniej więcej tak:
Kliknięcie spowoduje otwarcie menu z opcjami, aby dostosować swoje preferencje wcięcia, a co ważniejsze,
Convert Indentation to Tabs/Spaces
.To samo menu znajduje się w części
View -> Indentation
.źródło
U dołu okna Sublime zobaczysz coś, co reprezentuje twoje ustawienie tabulatorów / spacji.
Otrzymasz listę rozwijaną z wieloma opcjami. Dostępne opcje to:
Zastosuj wybrane ustawienie do całego dokumentu.
Mam nadzieję że to pomoże.
źródło
Jak zapewne wiesz, możesz dostosować ustawienia wcięcia
Preferences.sublime-settings
, na przykład:Spowoduje to ustawienie edytora do używania kart o szerokości 4 spacji i zastąpi domyślne zachowanie, które powoduje, że Sublime dopasowuje wcięcie dowolnego edytowanego pliku. Przy tych ustawieniach ponowne wcięcie pliku spowoduje zastąpienie spacji tabulatorami.
Jeśli chodzi o automatyczne ponowne wcięcie przy otwieraniu pliku, nie jest to wcale takie łatwe (ale prawdopodobnie nie jest to świetny pomysł, ponieważ zmiany białych znaków sieją spustoszenie w różnicach plików). Co może być lepszym sposobem działania: możesz zmapować skrót do ponownego wcięcia i po prostu uruchomić go po otwarciu nowego pliku, który wymaga naprawy.
źródło
Aby rozwiązać ten problem, możesz użyć palety poleceń.
Krok 1:
Ctrl + Shift + P
(aby aktywować paletę poleceń)Krok 2: Wpisz „Wcięcie”, wybierz
"Indentation: Convert to Tabs"
źródło
W moim przypadku ta linia rozwiązała problem:
źródło
Oto rozwiązanie, które będzie automatycznie konwertować na zakładki przy każdym otwarciu pliku.
Utwórz ten plik
.../Packages/User/on_file_load.py
:UWAGA. Powoduje, że plik jest w niezapisanym stanie po otwarciu, nawet jeśli nie nastąpiła faktyczna konwersja spacji do tabulacji ... może niektóre mogą pomóc w rozwiązaniu tego problemu ...
źródło
.../Packages/User/on_file_load.py
, nie.php
on_load
zamiaston_load_async
.Aby automatycznie przekonwertować spacje na tabulatory podczas zapisywania , dodaj następujący skrypt Python do nowo utworzonego podfolderu o nazwie „UnexandTabsOnSave” w ramach „$ SUBLIME_HOME $ \ Packages \”:
Dziękujemy za początkowe zasoby.
źródło
Możesz zastąpić tabulatory spacjami we wszystkich plikach projektu przez:
Ctrl+Shif+F
^\A(.*)$
Your dir
Zastąpiony przez
\1
Spowoduje to otwarcie wszystkich plików projektu, a ich bufor zostanie oznaczony jako brudny. Dzięki temu możesz teraz opcjonalnie włączyć te następne ustawienia Podniosłego tekstu, aby przyciąć wszystkie pliki na końcu białych znaków i zapewnić nową linię na końcu każdego pliku.
Możesz włączyć te ustawienia, przechodząc do menu
Preferences -> Settings
i dodając te treści do pliku ustawień:"ensure_newline_at_eof_on_save": true,
"trim_trailing_white_space_on_save": true,
View -> Show Console (Ctrl+`)
i uruchom polecenie: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
źródło
jeśli masz komputer Mac, skorzystaj z opcji pomocy (zwykle ostatnia opcja na pasku menu komputera Mac), a następnie wpisz: „wcięcie tabulatora” i wybierz szerokość wcięcia tabulatora
ale ogólnie rzecz biorąc, możesz podążać tą ścieżką: widok -> wcięcie
źródło
Aby rozwiązać problem, użyj następującego polecenia:
źródło
Oto jak to zrobić automatycznie po zapisaniu: https://coderwall.com/p/zvyg7a/convert-tabs-to-spaces-on-file-save
Niestety pakiet nie działa po zainstalowaniu go z Menedżera pakietów.
źródło