在Emacs中编辑Python
问题描述:
我看了一下python-mode和python.el。我正在使用python-mode.el。我也使用绳子和ropemacs。我正在寻找这些帮助我的文档,或者其他elisp软件包或其他东西。在Emacs中编辑Python
我目前的问题是我给出的代码有不一致的缩进大小。对于某些块,它将是两个,对于一些它将会是4.我想清除它,但由于某些原因,当我告诉emacs“修复缩进”时,它基本上每行都会打上标签,从而将代码搞砸了。我想要的是保持相同的相对缩进,但在4个空格上标准化。有什么能让我轻松做到这一点?
我想我可以找到坏的缩进的每个实例,*它,并查询 - 用4个空格替换2个空格。但是,这对我的精确度有点过分依赖,注意到这应该完成的地方。另外,它有很多代码。
有人告诉我说,自行车修理工会解决这个问题,但是现在已经有几年没有发展......还有其他建议吗?
谢谢。
答
假设你已经使用Sven Marnach的评论来清理代码库,我猜你只需要使python-mode.el使用你喜欢的缩进样式?
看看变量py-indent-offset
和py-smart-indentation
(也许还有py-continuation-offset
和py-honor-comment-indentation
)。以及正常indent-tabs-mode
。
您可以自定义他们(M-Xcustomize-group
RETpython
RET),或添加自定义功能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模式的缩进设置。
不是一个真正的Emacs的答案,但你可能会感兴趣[由亚历克斯·马尔泰利这样的回答(http://*.com/questions/1024435/HOWTO-FIX-蟒压痕/ 1024489#1024489)。 – 2011-02-04 21:05:48
谢谢!至少可以解决一个问题! – 2011-02-04 21:29:35