Вопрос

Когда я пишу код на Python и внезапно чувствую желание добавить новый блок перед уже написанным кодом....влияет отступ всего кода..переход к каждой строке и изменение отступа очень утомительный процесс... есть ли способ сделать автоматический отступ или что-то в этом роде...

например:

def somefunction:
     x =5
     return x

если я хочу добавить блок управления

например:

def somefunction:
     if True:
         x =5
         return x
     return 0

это небольшое изменение, связанное с добавлением блока управления, потребовало много работы с вкладками....

есть ли ярлык или что-то, чтобы сделать это легко?

Это было полезно?

Решение

Я не знаю, с каких дурацких планет все прибыли, но в большинстве редакторов, которые не относятся к каменному веку, для отступов блоков кода обычно требуется только выделить блок текста и нажать клавишу Tab.С другой стороны, сочетание клавиш Shift+Tab обычно удаляет вмятины в блоке.

Это справедливо для Visual Studio, Notepad2, e, Textmate, Slickedit, #Develop и т. д.и т. д.и т. д.

Если вы не занимаетесь большими многофайловыми проектами, я настоятельно рекомендую Блокнот2.Это очень легкая, бесплатная и простая в использовании замена блокнота с достаточным количеством функций, ориентированных на код (номера строк, направляющие отступов, подсветка кода и т. д.).

Другие советы

В редакторе Idle вы можете просто выбрать строки, для которых хотите сделать отступ, и нажать Tab.

Должен отметить, что на самом деле в ваш исходный текст не вставляются никакие табуляции, а только пробелы.

В IDLE я просто использую Ctrl+] и Ctrl+[ для блока кода.

В emacs есть режим Python.В этом режиме вы выделяете и делаете:

ctrl-c >
ctrl-c <

Используйте VI и никогда больше не программируйте то же самое.:^)

[Смешно ;-)] Чувак, я же говорил тебе, что если бы у тебя была эта новая модель клавиатуры, тебе понадобилось бы на одного разработчика меньше.Питоническая клавиатура http://img22.imageshack.us/img22/7318/pythonkeyboard.jpg

Если вы используете vim, специально для этого есть плагин: Python_fn.vim

Он предоставляет полезные функции Python (и эквиваленты меню):

]t      -- Jump to beginning of block
]e      -- Jump to end of block
]v      -- Select (Visual Line Mode) block
]<      -- Shift block to left
]>      -- Shift block to right
]#      -- Comment selection
]u      -- Uncomment selection
]c      -- Select current/previous class
]d      -- Select current/previous function
]<up>   -- Jump to previous line with the same/lower indentation
]<down> -- Jump to next line with the same/lower indentation

Вим:переключитесь в визуальный режим, выберите блок, используйте > для отступа (или < для удаления отступа).

Смотрите также: Быстро сделать отступ в нескольких строках в vi

В TextMate просто выделите строки, для которых вы хотите сделать отступ, и используйте:


⌘ + [
или
⌘ + ]

Переместить текст в нужном направлении.

PyDev, который вы можете найти по адресу http://pydev.sourceforge.net/ имеет «Форматировщик кода».Он также имеет функцию автоотступа.Это плагин для Eclipse, который также бесплатно доступен для Mac.

Другим вариантом было бы http://code.google.com/p/macvim/ если вы знакомы или потратили время на Vim, который имеет множество функций автоотступа не только для Python.

Но не забывайте, что в Python отступы меняют смысл программы, в отличие от языков семейства C.Например, для C или C# служебная программа может украсить код символами «{» и «}».Но в Python это было бы неоднозначно, поскольку программа не может форматировать следующее:

#Say we wrote the following and expect it to be formatted.
a = 1
for i in range(5):
print i
a = a + i
print a

Вы ожидаете, что это будет

a = 1
for i in range(5):
    print i
a = a + i
print a #Will print 5

или

a = 1
for i in range(5):
    print i
    a = a + i
print a #Will print 11

это два разных фрагмента.

В Komodo Tab и Shift Tab работают должным образом, создавая отступы и удаляя большие блоки кода.

В vim вы можете ввести:

>>

чтобы сделать отступ в строке.Если вы введете:

5>>

вы делаете отступ на 5 строк под курсором. 5<< делает обратное.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top