2

当我用 Python 编写代码时,突然想在我已经编写的代码前面添加一个新块......完整代码的缩进受到影响......

移动到每一行并更改缩进是一个非常乏味的过程......有没有办法做自动缩进或什么?

例如:

def somefunction:
     x =5
     return x

如果我想添加一个控制块

例如:

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

这个添加控制块的小改变需要大量的标签工作......

是否有捷径或其他方法可以轻松做到这一点?

4

12 回答 12

5

我不知道每个人都来自什么古怪的星球,但在大多数不追溯到石器时代的编辑器中,缩进代码块通常只需要选择一个文本块并按下 Tab。另一方面,Shift+Tab 通常会取消块的凹痕。

这适用于 Visual Studio、Notepad2、e、Textmate、Slickedit、#Develop 等等等。

如果你不做大型多文件项目,我强烈推荐Notepad2。它是一个非常轻量级、免费、易于使用的记事本替代品,具有足够的以代码为中心的功能(行号、缩进指南、代码突出显示等)

于 2009-05-16T00:18:29.010 回答
3

在空闲编辑器中,您只需选择要缩进的行并按 Tab。

我应该注意,这实际上并没有在您的源代码中插入任何选项卡,只是空格。

于 2009-05-15T17:43:58.803 回答
2

在 IDLE 中,我只在代码块上使用 ctrl+] 和 ctrl+[。

于 2009-05-15T17:46:27.750 回答
2

使用 emacs 有 Python 模式。在该模式下,您突出显示并执行以下操作:

ctrl-c >
ctrl-c <
于 2009-05-15T23:10:04.667 回答
1

使用 VI 并且永远不要再编写相同的程序。:^)

于 2009-05-15T17:49:46.357 回答
1

[有趣 ;-)] 伙计,我告诉过你,如果你有这个新的键盘模型 Pythonic 键盘,你将不需要一名开发人员 http://img22.imageshack.us/img22/7318/pythonkeyboard.jpg

于 2009-05-15T22:53:41.367 回答
1

Vim:切换到可视模式,选择块,使用 > 缩进(或 < 取消缩进)。

另请参阅:在 vi 中快速缩进多行

于 2009-05-15T23:35:32.623 回答
1

如果您使用 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
于 2009-05-15T23:46:59.303 回答
0

在 TextMate 中,只需突出显示要缩进和使用的行:


⌘ + [

⌘ + ]

以适当的方向移动文本。

于 2009-05-15T17:50:59.177 回答
0

PyDev,您可以在http://pydev.sourceforge.net/找到它,它有一个“代码格式化程序”。它还具有自动缩进功能。它是 Eclipse 的一个插件,Mac 也可以免费使用。

如果您熟悉 Vim 或花时间学习 Vim,另一个选择是http://code.google.com/p/macvim/,它有很多自动缩进功能,不仅适用于 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

这是两个不同的片段。

于 2009-05-15T21:15:21.913 回答
0

在 Komodo 中,Tab 和 Shift Tab 都可以按预期缩进和取消缩进大块代码。

于 2009-05-16T01:52:52.717 回答
0

在 vim 中,您可以输入:

>>

缩进一行。如果您输入:

5>>

您在光标处和光标下方缩进 5 行。 5<<做相反的事情。

于 2009-05-16T02:54:09.730 回答