Я новичок в затмении. Я хочу сделать отступ для всех строк моего кода и отформатировать открытый файл, нажав ярлык или что-то в этом роде ... Я знаю CTRL + SHIFT + F (поскольку он на самом деле не работает в pydev !!). искал часами безуспешно. Есть ли способ сделать это в затмении. что-то вроде CTRL + K, D в Visual Studio, который форматирует все строки исходного кода и делает отступы автоматически?
отступить файл python (с pydev) в eclipse
Ответы (10)
Я ... не думаю, что этот вопрос имеет смысл. Отступы - это синтаксис 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 для выполнения такого рода форматирования за вас.
Если вы хотите изменить отступ с 2 пробелов на 4 пробела (например), используйте «Source-> Convert space to tab» с 2 пробелами, затем «Soruce-> Convert tab to space» с 4 пробелами.
Хотя автоматический отступ не является функцией PyDev из-за языковой конструкции, вы должны иметь возможность делать отступ с помощью простой табуляции. Просто выберите строки, для которых нужно сделать отступ, и нажмите Tab. Если вы хотите убрать выделение строк, нажмите Shift + Tab. Это все.
Это намного проще:
- Выбрать несколько строк
- Нажмите Tab, чтобы сделать отступ (сдвинуть вправо), Shift + Tab, чтобы убрать отступ (сдвинуть влево) все выделенные строки.
Отступы имеют синтаксическое значение; рассмотрите разницу между
for i in range(5):
print i
print "done"
и
for i in range(5):
print i
print "done"
Тем не менее, для IDE, безусловно, имеет смысл иметь возможность нормализовать существующий отступ (например, применять постоянное количество пробелов / вкладок на каждом уровне).
В настоящее время PyDev не поддерживает такую функцию; Автор Pydev Фабиоз однажды выразил заинтересованность в добавлении его в future и указали, что на данный момент вы можете использовать для этого прилагаемый скрипт reindent.py.
Очевидно, это только для Pydev, но я понял, что вы можете получить полезные очень полезные функции «Сдвиг вправо» и «Сдвиг влево» (по умолчанию сопоставленные с CTRL + ALT +. И CTRL + ALT +,). изменив их сочетания клавиш на «Область действия редактора Pydev» с «Представление Pydev». Это эффективно смещает / удаляет все строки, которые вы выбрали, сколько угодно.
Я думаю, что вы ищете какой-то ярлык в Eclipse / PyDev, чтобы можно было сразу идентифицировать выбранный код. Точно так же, как когда вы создаете новый цикл «if» или «for» над блоком кода, а затем вам нужно изменить идентификацию. В редакторе IDLE есть ярлык «Ctrl +]», который работает именно так. Насколько мне известно, в PyDev в Eclipse ничего подобного нет.
Также можно выбрать линии, щелкнуть правой кнопкой мыши, затем сдвинуть вправо / сдвинуть влево
Похоже, форматирование исходного кода все еще недоступно в PyDev.
В разовых случаях я обнаружил, что это веб-приложение отлично справляется со своей задачей.
http://pythoniter.appspot.com/
Как уже говорилось ранее, python требует отступа в вашем коде, поэтому для других вещей, таких как: пробел между переменными, передаваемыми в качестве аргументов методам и т. Д., Можно использовать ctrl+shift+f
для форматирования кода. Это то, что используется для java, я пробовал для pydev и немного форматирует.