在Emacs中编辑Python

问题描述:

我看了一下python-mode和python.el。我正在使用python-mode.el。我也使用绳子和ropemacs。我正在寻找这些帮助我的文档,或者其他elisp软件包或其他东西。在Emacs中编辑Python

我目前的问题是我给出的代码有不一致的缩进大小。对于某些块,它将是两个,对于一些它将会是4.我想清除它,但由于某些原因,当我告诉emacs“修复缩进”时,它基本上每行都会打上标签,从而将代码搞砸了。我想要的是保持相同的相对缩进,但在4个空格上标准化。有什么能让我轻松做到这一点?

我想我可以找到坏的缩进的每个实例,*它,并查询 - 用4个空格替换2个空格。但是,这对我的精确度有点过分依赖,注意到这应该完成的地方。另外,它有很多代码。

有人告诉我说,自行车修理工会解决这个问题,但是现在已经有几年没有发展......还有其他建议吗?

谢谢。

+3

不是一个真正的Emacs的答案,但你可能会感兴趣[由亚历克斯·马尔泰利这样的回答(http://*.com/questions/1024435/HOWTO-FIX-蟒压痕/ 1024489#1024489)。 – 2011-02-04 21:05:48

+0

谢谢!至少可以解决一个问题! – 2011-02-04 21:29:35

假设你已经使用Sven Marnach的评论来清理代码库,我猜你只需要使python-mode.el使用你喜欢的缩进样式?

看看变量py-indent-offsetpy-smart-indentation(也许还有py-continuation-offsetpy-honor-comment-indentation)。以及正常indent-tabs-mode

您可以自定义他们(M-Xcustomize-groupRETpythonRET),或添加自定义功能python-mode-hook。例如: -

(add-hook 'python-mode-hook 'my-python-mode-hook) 
(defun my-python-mode-hook() 
    (setq indent-tabs-mode nil 
     py-smart-indentation nil 
     py-indent-offset 4)) 

(custom-set-variables 
    ... 
    '(indent-tabs-mode nil) 
    '(tab-stop-list (quote (4 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120))) 
    '(tab-width 4)) 

显然,这些是为孝敬他们(其中蟒蛇模式一样)模式的全局设置。我根本没有用python模式的缩进设置。

与PY-智能缩进设置为'T”

当前的python-mode.el应该这样做。

http://launchpad.net/python-mode

中的错误的情况下,请报告有