在Emacs中编辑Python

时间:2011-02-04 21:02:24

标签: python emacs ropemacs rope

我看过python-mode和python.el。我正在使用python-mode.el。我也在使用绳索和绳索。我正在寻找关于这些的一些文档,这些文档可以帮助我,或者其他elisp软件包或其他东西。

我目前的问题是我给出的代码具有不一致的缩进大小。对于一些块,它将是两个,对于一些它将是4.我想要清理它,但由于某种原因,当我告诉emacs“修复缩进”时它只是在每行上点击选项卡,这搞砸了代码。我想要的是保持相同的相对缩进,但标准化为4个空格。有什么能让我轻易做到这一点吗?

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

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

感谢。

3 个答案:

答案 0 :(得分:0)

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

查看变量py-indent-offsetpy-smart-indentation(也许还有py-continuation-offsetpy-honor-comment-indentation)。与普通indent-tabs-mode一样。

您可以自定义它们( Mx customize-group RET python RET ),或添加自定义函数到python-mode-hook。 e.g:

(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))

答案 1 :(得分:0)

将py-smart-indentation设置为“t”

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

http://launchpad.net/python-mode

如果有错误,请在那里报告

答案 2 :(得分:-1)

(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-mode会这样做)。我根本没有使用python-mode的缩进设置。