在换行符ala PyCharm之后,Emacs为python代码缩进

时间:2013-09-30 04:06:34

标签: python emacs indentation

按Enter后,PyCharm会在== b之后正确识别该行:

if a == b:
   print "something"

但是在emacs中,它会给我:

if a == b:
print something 

我已经和ergoemacs一起启用了python-mode。有人这样做之前可以分享如何使用PyCharm吗?

更新 * alt-return似乎正在做我想要的事情 *

3 个答案:

答案 0 :(得分:3)

C-j执行newline-and-indent,这正是你正在寻找的。

使用python-mode.el时, RET 默认绑定到py-newline-and-indent

答案 1 :(得分:1)

我猜你正在运行“错误”的python模式。

你的发行版最有可能发货python-mode.el,我个人觉得它有点笨拙。

相反,请尝试python.el。只需下载文件,将其放入~/.emacs.d/并添加

即可
(load "~/.emacs.d/python.el")

到您的~/.emacs文件。

当你在这里时,这里有一些关于空白和最大行长度的好设置:

(add-hook 'python-mode-hook '(lambda ()
 (setq whitespace-line-column 79)
 (setq whitespace-style '(face empty tabs lines-tail trailing))))

答案 2 :(得分:0)

print something行的任意位置按'tab'键 - 它应该正确缩进。这适用于大多数模式。

EDIT 在没有像python 这样的严格缩进规则的其他模式中,您可以突出显示所有内容,Ctrl + Meta + \将尝试格式化所有内容。