#python #eclipse #pydev #code-formatting #indentation
#python #eclipse #pydev #форматирование кода #отступ
Вопрос:
Я новичок в eclipse. Я хочу сделать отступ во всех строках моего кода и форматировать открытый файл, нажав ярлык или что-то в этом роде… Я знаю CTRL SHIFT F (поскольку он на самом деле не работает в pydev !!) Я искал часами, но безуспешно. Есть ли какой-нибудь способ сделать это в eclipse. что-то вроде CTRL K, D в Visual Studio, которая автоматически форматирует и отступает все строки исходного кода?
Ответ №1:
Если вы хотите изменить отступ с 2 пробелов на 4 (например), используйте «Source-> Преобразовать пробел в табуляцию» с 2 пробелами, затем «Soruce-> Преобразовать табуляцию в пробел» с 4 пробелами.
Ответ №2:
Я … не думаю, что этот вопрос имеет смысл. Отступ — это синтаксис в Python. Не имеет смысла, чтобы ваша IDE автоматически делала отступы в вашем коде. Если он уже не имеет правильного отступа, он не работает, и IDE не может знать, где начинаются и заканчиваются ваши блоки отступов. Возьмем, например:
# Valid Code
for i in range(10):
b = i
for j in range(b):
c = j
# Also Valid Code.
for i in range(10):
b = i
for j in range(b):
c = j
Невозможно, чтобы IDE могла узнать, какая из них является правильной версией или каковы ваши намерения. Если вы собираетесь писать код на Python, вам придется научиться управлять отступом. Избежать этого невозможно, и ожидать, что IDE волшебным образом очистит его и при этом получит желаемый результат, практически невозможно.
Дополнительный пример:
# Valid Code.
outputData = []
for i in range(100):
outputData.append(str(i))
print ''.join(outputData)
# Again, also valid code, wildly different behavior.
outputData = []
for i in range(100):
outputData.append(str(i))
print ''.join(outputData)
Первый создаст список строк, затем выведет объединенный результат на консоль 1 раз. Второй по-прежнему будет выдавать список строк, но печатает совокупный объединенный результат для каждой итерации цикла — 100 операторов печати. Оба они на 100% синтаксически корректны. С ними нет проблем. Любой из них может быть тем, что хотел разработчик. IDE не может «знать», что правильно. Это может очень легко неправильно изменить первую версию на вторую версию. Поскольку язык использует отступ в качестве синтаксиса, невозможно настроить IDE для выполнения такого форматирования за вас.
Комментарии:
1. Это правильно. Python использует отступы для значения, в отличие от C или Java. Это означает, что Python не может быть «с автоматическим отступом», в то время как другие могут.
2. На самом деле, если вызвать функцию длиной в несколько строк, отступ может быть более свободным.
3. каждая среда разработки должна предоставлять ярлыки с отступом или разделением, и eclipse также имеет, как указано @fivef ниже
4. Ну, на самом деле автоматическое отступление возможно, но выбор блока кода и увеличение отступа каждой строки на 1 отступ или уменьшение на 1 отступ должно быть.
Ответ №3:
Хотя автоматическое отступление не является особенностью PyDev из-за языкового дизайна, вы должны иметь возможность делать отступы с помощью простой вкладки. Просто выберите строки, которые вы хотите сделать отступ, и нажмите Tab. Если вы хотите отменить отступ строк, вам нужно нажать Shift Tab. Вот и все.
Комментарии:
1. Я не знал о «Shift Tab». Это обязательно поможет
![]()
Ответ №4:
Это намного проще:
- Выберите несколько строк
- Нажмите Tab для отступа (перемещение вправо), Shift Tab для снятия отступа (перемещение влево) всех выбранных строк.
Ответ №5:
Отступ имеет синтаксическое значение; рассмотрим разницу между
for i in range(5):
print i
print "done"
и
for i in range(5):
print i
print "done"
Однако, безусловно, имеет смысл, чтобы IDE могла нормализовать существующий отступ (например, применять постоянное количество пробелов / табуляций на каждом уровне).
В настоящее время PyDev не поддерживает такую функцию; Автор Pydev Fabioz в какой-то момент выразил заинтересованность в ее добавлении в будущем и указал, что пока вы можете использовать предоставленный reindent.py сценарий, чтобы сделать это.
Ответ №6:
Очевидно, что это только для Pydev, но я выяснил, что вы можете сделать очень полезные функции «Shift Right» и «Shift Left» (по умолчанию сопоставленные с CTRL ALT . и CTRL ALT ,) полезными, изменив их привязки клавиш на «Область редактора Pydev» из»Представление Pydev». Это эффективно выделяет / выделяет все выбранные вами строки столько, сколько вам хотелось бы
Ответ №7:
Я думаю, что то, что вы ищете, — это какой-то ярлык в Eclipse / PyDev, чтобы выбранный код можно было идентифицировать сразу. Точно так же, как когда вы создаете новый цикл «if» или «for» над блоком кода, а затем вам нужно изменить идентификатор. В редакторе IDLE есть ярлык «Ctrl ]», который работает именно так. Кажется, что PyDev в Eclipse не имеет ничего подобного, насколько я знаю.
Ответ №8:
Можно также выбрать строки, щелкнуть правой кнопкой мыши, затем сдвинуть вправо / сдвинуть влево
Ответ №9:
Похоже, форматирование исходного кода по-прежнему недоступно в PyDev.
Для одноразовых экземпляров я обнаружил, что это веб-приложение отлично справляется с этой задачей.
Ответ №10:
Как уже говорилось ранее, python требует отступа в вашем коде, поэтому для других вещей, таких как: пробел между переменными, передаваемыми в качестве аргументов методам и т.д., Можно использовать ctrl shift f
для форматирования кода. Это то, что используется для java, я пробовал для pydev и выполняет некоторое форматирование.
Комментарии:
1. Мнение первого пользователя. Если переводчик сообщает / знает о «неожиданном отступе», это означает, что он должен иметь возможность правильно отступать от текста, не так ли? Многого ли я прошу от разработчика интерпретатора?