在Emacs中编辑Python

5
我看了python-mode和python.el,现在正在使用python-mode.el,同时也在使用rope和ropemacs。我要么想找一些有用的文档,要么找另一个elisp包或类似的东西。
我目前的问题是,给我的代码缩进大小不一致。对于某些块,它将是两个空格,而对于其他块,则为4个空格。我想清理这个问题,但出现了一个问题,当我告诉emacs“修复缩进”时,它基本上只是在每一行上都按tab键,这会破坏代码。我想保持相同的相对缩进,但标准化为4个空格。有什么方法可以让我轻松地做到这一点吗?
我想我可以找到每个错误缩进的实例,将其块化,并查询替换2个空格为4个空格。但这太依赖于我的精度,需要注意哪里应该这样做。而且,这是很多代码。
有人告诉我bicycle repairman可以解决这个问题,但那已经多年没有更新了...还有其他建议吗?
谢谢。

3
这并不是关于Emacs的回答,但你可能对Alex Martelli在Stack Overflow上的这个回答感兴趣。 - Sven Marnach
谢谢!至少解决了一个问题! - Brian Postow
3个回答

0

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

查看变量py-indent-offsetpy-smart-indentation(以及可能还有py-continuation-offsetpy-honor-comment-indentation),以及正常的indent-tabs-mode

您可以自定义它们(M-x customize-group RET python 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))

是的,我认为4是默认值,这正是我想要的。更多的是使用Sven的建议,并拥有一些工具来更轻松地移动代码块... - Brian Postow

0

如果将py-smart-indentation设置为“t”,

当前的python-mode.el应该可以实现。

http://launchpad.net/python-mode

如果出现错误,请在那里报告


-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的缩进设置进行任何调整。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接