LINUX.ORG.RU
ФорумTalks

Python


0

0

http://pygtk.org/pygtk2tutorial/examples/filelisting.py

Сохраняем файл, запускаем - всё работает. Открываем vim, правим пару строк, :wq, python filelisting.py... и получаем:

File "filelisting.py", line 72
self.window.set_size_request(400, 300)
^
IndentationError: unindent does not match any outer indentation level

или вот такое:

File "filelisting.py", line 100
print "ok"
^
SyntaxError: invalid syntax

Что делать? сбивать все влево и работать "табовой обезъяной", а что ещё остаётся, ведь автоформат для python невозможен в принципе. Не раз сталкивался с этой проблемой, эта дебильная табовая особенность портит хорошее впечатление о языке. Её одной достаточно для того, чтобы сказать: "Python sucks!".

★★★★★

Как я понял, из-за vim слетает оформление, а виноват, конечно, python. Так?

anonymous
()
Ответ на: комментарий от anonymous

Ну конечно. Разве синтаксис и семантика языка должны зависеть от текстового редактора?

seiken ★★★★★
() автор топика

В Python идентификатор степени вложенности не только tab, но и пробелы, т.е. двойной геморрой.

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

>Разве синтаксис и семантика языка должны зависеть от текстового редактора?

От оформления кода, ты хотел сказать? Ни да, ни нет. Это зависит от решения автора языка. А он никому ничего не должен.

А вот на кой черт сдался текстовый редактор, который самовольно этот самый текст изменяет -- большой вопрос.

Короче, в данном случае мы видим проблему, вызванную неправильным выбором инструмента для решения задачи.

anonymous
()
Ответ на: комментарий от UserUnknown

>Сотни раз правил и писал vim'ом питоновскиие скрипты - ни разу не сбивал табуляцию.

Очень просто - один скрипт написан с отступами в 3 пробела, другой - с отступами в 8 пробелов, третий - с табами. Т.о. нужно сначала определить используемый в скрипте отступ, потом сказать редактору, что tab - это на самом деле n отступов (а если он этого не умеет?), и лишь затем можно править скрипт, будучи уверенным, что проблем с отступами не будет. Это же идиотизм!

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Точно также просто. Он не переписывает то, что не правилось. Кстати, какая версия вима?

UserUnknown ★★★★★
()
Ответ на: комментарий от seiken

> просто - один скрипт написан с отступами в 3 пробела, другой - с отступами в 8 пробелов, третий - с табами.

У вас принято так писать на Питоне? Если за это не убивать - то за что тогда вообще убивать? (C)

ero-sennin ★★
()
Ответ на: комментарий от ero-sennin

2UserUnknown
>Точно также просто. Он не переписывает то, что не правилось. Кстати, какая версия вима?

Дело не в том, что переписывает/не переписывает, и даже не в самом редакторе, а в принципе индентации. Вим версии 6.4.

2ero-sennin
>У вас принято так писать на Питоне? Если за это не убивать - то за что тогда вообще убивать? (C)

Не я один пишу на Python, почему я должен следить за каждым Васей Пупкиным?

seiken ★★★★★
() автор топика
Ответ на: комментарий от ero-sennin

Язык программирования ... интерпретация которого ЗАВИСИТ от символа табуляции или от количества пробелов ... мдя .. это СИЛЬНО !

robot12 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.