Jak naprawić / przekonwertować wcięcia spacji w wysublimowanym tekście?

Przykład: jeśli mam dokument z 2 wcięciami spacji i chcę, aby miał 4 wcięcia spacji, jak mogę go automatycznie przekonwertować za pomocą edytora tekstu Sublime?

Author: Magne, 2013-02-08

8 answers

Oto sprytna sztuczka w Sublime Text 2 lub 3, Aby przekonwertować odstępy wcięć w dokumencie.

TL; DR:

Konwersja z 2 spacji na 4 spacje:

upewnij się, że szerokość karty jest ustawiona na 2. Konwertuj wcięcia z 2 spacjami na tabulatory, Przełącz na szerokość kart 4, a następnie Konwertuj wcięcia z powrotem na spacje.

Szczegółowy opis:

Przejdź do:

View -> Indentation

Powinno powinno być:

  • Indent using spaces [x]
  • Tab width: 2

Wybierz:

  • Convert Indentation to Tabs

Następnie Wybierz:

  • Tab width: 4
  • Convert Indentation to Spaces
Zrobione.
 489
Author: Magne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-02 15:25:35

Faktycznie stwierdziłem, że lepiej dla mojego rozsądku mieć tak zdefiniowane preferencje użytkownika:

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

detect_indentation: false jest szczególnie ważne, ponieważ zmusza Sublime do honorowania tych ustawień w każdym pliku, w przeciwieństwie do ustawień View -> Indentation.

Jeśli chcesz uzyskać fantazję, możesz również zdefiniować skrót klawiaturowy, aby automatycznie ponownie wciąć kod (YMMV), wklejając następujące elementy w Sublime -> Preferences -> Key Binding - User:

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

I wizualizacji białych znaków:

"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],
 70
Author: Brian Gerstle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-30 15:18:22

Znalazłem, w mojej głowie, prostsze rozwiązanie niż Magne:

Na Macu:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

Na windows lub innych platformach zmień cmd+f i alt+enter niezależnie od tego, jakie są Twoje find i select all skróty klawiszowe.

Uwaga: ta metoda jest podatna na" błędy", jeśli masz więcej niż jedno miejsce w kodzie. Jest więc mniej bezpieczna niż metoda Magne' a, ale jest szybsza (przynajmniej dla mnie).

 9
Author: Automatico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-04 21:19:12

Podczas gdy wiele sugestii działa podczas konwersji przestrzeni 2 - > 4. Napotkałem pewne problemy podczas konwersji 4 - > 2.

Oto co wykorzystałem:

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" }
]
 7
Author: Kyle Finley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-14 22:45:13

Jeśli znajdziesz wyszukiwanie i zastępowanie szybciej, możesz użyć zastępowania regex w następujący sposób:

Find (regex): (^|\G) {2} (zamiast " {2}" <space>{2} możesz po prostu napisać dwie spacje. Użyłem go tutaj dla jasności.)

Zastąp 4 spacjami, czy jak chcesz, np. \t.

 5
Author: Qtax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-29 15:37:48

Napisałem do niego wtyczkę. Możesz go znaleźć tutaj lub poszukać "Renifer" w kontrolce pakietów. W większości robi to samo, co napisał Kyle Finley, ale w wygodny sposób ze skrótami do konwersji między 2 a 4 i odwrotnie.

 5
Author: kamilkp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 05:24:15

Musisz dodać ten kod do niestandardowych wiązań kluczy:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

Po naciśnięciu ctrl + f12, plik zostanie ponownie wyświetlony na karcie o rozmiarze 4. jeśli chcesz inny rozmiar karty, po prostu zmień numer "wartość". Format Te to prosty json.

 2
Author: patricia bezek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-18 15:50:35

Najprostszą rzeczą jaką zrobiłem było,

Zmieniono moje wcięcia na tabulatory

I to rozwiązało mój problem.

Możesz zrobić to samo,

Do Spacji

Jak również na twoje potrzeby.

Wspomniałem o migawce tego samego.

Tutaj wpisz opis obrazka

 0
Author: Indrajeet Gour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-23 08:18:28