Как автоматически добавлять в код код, который отлично выглядит на github, но ужасно с отступом в редакторе? - PullRequest
0 голосов
/ 14 марта 2019

Мне нужно отредактировать фрагмент кода, который выглядит следующим образом, в Sublime и PyCharm (небольшая часть большого исходного файла):

enter image description here

Я не уверен, какой тип современного редактора кода (и инновационной методологии, требующей смешивания табуляции и пробелов в одной строке) использовали авторы, но каким-то образом их отступ выглядит разумно на github (так что я думаю, что все члены команды использовали Atom?) - Я проверил, и исходный код страницы все еще содержит \t символов.

enter image description here

Команда python -m py_compile выглядит довольной этим кодом как есть, поэтому я попытался заменить вкладки на 8 пробелов , по-прежнему выглядит ужасно.Любая попытка заменить их «фиксированным числом» пробелов также не сработала, включая 5 пробелов, которые, по-видимому, являются числом или &nbsp, который должен использовать браузер).Файл не имеет CRLF-окончаний, я проверил.

Я попытался использовать форматер , который использует Python 2.7 AST для внутреннего использования, он говорит, что отступы неправильные, поэтому все равно не повезло.

Моя попытка найти некоторую логику за количеством табуляций и предполагаемым количеством пробелов привела к следующим наблюдениям:

2 spaces + tab + 4 spaces => 12 spaces
sstssss ->
ssssssssssss (12 spaces) => t = 6 spaces
example
        for |<- these pipes should be one on top of the other
        |correct_t

sst ->
ssssssss (8 spaces) => t = 6 spaces
example
        |writer.add_scalar('eval/acc', acc, epoch)
    |if acc >= best_acc:

but

ssstsssss ->
sssssssssssss (13 spaces) => t = 5 spaces

         |best_acc = acc
             |model.save_networks('best'+str(epoch))

1 Ответ

0 голосов
/ 14 марта 2019

О, я понял решение!Я установил ширину табуляции на 8 пробелов в возвышенном, и тогда он работает как положено, то есть вместо замены каждого \t на 8 пробелов он «табулирует» их до 8 пробелов!

В Linux можно сделать то же самоевещь через expand -t 8 <filename>.

enter image description here

...