отступ файла Python (с pydev) в затмении - PullRequest
15 голосов
/ 05 октября 2011

Я новичок в затмении. Я хочу сделать отступ для всех строк моего кода и отформатировать открытый файл, нажав ярлык или что-то в этом роде ... Я знаю CTRL + SHIFT + F (так как на самом деле он не работает в pydev !!) Я искал часы безуспешно. Есть ли способ сделать это в затмении. вроде CTRL + K, D в visual studio, который автоматически форматирует и выравнивает все строки исходного кода?

Ответы [ 10 ]

22 голосов
/ 01 июня 2012

Если вы хотите изменить отступ от 2 пробелов до 4 (например), используйте «Source-> Convert space to tab» с двумя пробелами, а затем «Soruce-> Convert tab to space» с 4 пробелами.

19 голосов
/ 05 октября 2011

Я ... не думаю, что этот вопрос имеет смысл.Отступ - это синтаксис в 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 операторов print.Оба синтаксически верны на 100%.Там нет проблем с ними.Любой из них может быть тем, что хотел разработчик.IDE не может "знать", что является правильным.Это может очень легко неправильно изменить первую версию на вторую.Поскольку язык использует отступ в качестве синтаксиса, невозможно настроить IDE для выполнения такого рода форматирования.

16 голосов
/ 24 мая 2012

Хотя автоиндентирование не является функцией PyDev из-за языкового дизайна, вы должны иметь возможность делать отступ с помощью простой вкладки. Просто выберите линии, которые вы хотите сделать отступ и нажмите Tab. Если вы хотите удалить отступы, нажмите Shift + Tab. Вот и все.

13 голосов
/ 19 августа 2014

Это гораздо проще:

  1. Выделить несколько строк
  2. Нажмите клавишу Tab, чтобы сделать отступ (переместить вправо), Shift + Tab, чтобы отменить (переместить влево) все выбранные строки.
4 голосов
/ 03 августа 2012

Отступы синтаксически значимы;рассмотрите разницу между

for i in range(5):
    print i
print "done"

и

for i in range(5):
    print i
    print "done"

Однако для IDE, безусловно, имеет смысл нормализовать существующий отступ (например, применять постоянное количество пробелов / табуляцийна каждом уровне).

В настоящее время PyDev не поддерживает такую ​​функцию;Автор Pydev Фабиоз в один момент выразил заинтересованность в его добавлении в будущем и указал, что на данный момент вы можете использовать прилагаемый скрипт reindent.py, чтобы сделать это .

2 голосов
/ 22 октября 2012

Очевидно, что это только для Pydev, но я выяснил, что вы можете получить очень полезные функции «Shift Right» и «Shift Left» (по умолчанию отображаются на CTRL + ALT +. И CTRL + ALT +,). чтобы стать полезным, изменив их сочетания клавиш на «Область редактора Pydev» с «Представления Pydev». Это эффективно делает отступы / отступы для всех выбранных вами строк столько, сколько вы хотите

1 голос
/ 29 апреля 2015

Кажется, исходное форматирование все еще недоступно в PyDev.

В одном случае я обнаружил, что это веб-приложение хорошо выполняет свою работу.

http://pythoniter.appspot.com/

1 голос
/ 11 марта 2015

Можно также выбрать строки, щелкнуть правой кнопкой мыши, затем сдвинуть вправо / сдвинуть влево

1 голос
/ 21 мая 2012

Я думаю, что вы ищете какой-то ярлык в Eclipse / PyDev, чтобы выбранный код можно было идентифицировать все сразу.Точно так же, как когда вы создаете новый цикл «if» или «for» над блоком кода, а затем необходимо изменить расположение отступов.В редакторе IDLE есть ярлык "Ctrl +]", который работает именно так.Насколько я знаю, у PyDev в Eclipse нет ничего подобного.

0 голосов
/ 16 июня 2017

Как уже говорилось ранее, python требует отступа вашего кода, поэтому для других вещей, таких как: пространство между переменными, передаваемыми в качестве аргументов в методы и т. Д., Можно использовать ctrl+shift+f для форматирования кода.Это то, что используется для Java, я попробовал для Pydev и делает некоторое форматирование.

...