Python.el在文档字符串上错误处理了我的M-q缩进

时间:2014-05-20 17:02:38

标签: python emacs

给定功能

def foo():
  """
  etc
  stuff
  """
  pass

当我将M-q运行到我的文档字符串中时,emacs(24.3.1,python.el)会像这样重新格式化foo:

def foo():
  """etc
  stuff
  """
  pass

如何告诉python.el不管它? (我知道这种行为是新的,不同计算机上的旧emacs(我无法访问)并没有这样做)。

1 个答案:

答案 0 :(得分:5)

python.el正在做的事实上是Python惯例(虽然在第一行之后没有空行) - 请参阅PEP-0257&#39}示例:

def complex(real=0.0, imag=0.0):
    """Form a complex number.

    Keyword arguments:
    real -- the real part (default 0.0)
    imag -- the imaginary part (default 0.0)
    """
    if imag == 0.0 and real == 0.0:
        return complex_zero

查看the source code for python.el,更改此行为的参数为'python-fill-docstring-style',默认为pep-257,但提供了一些替代方法:

:type '(choice
          (const :tag "Don't format docstrings" nil)
          (const :tag "Django's coding standards style." django)
          (const :tag "One newline and start and Two at end style." onetwo)
          (const :tag "PEP-257 with 2 newlines at end of string." pep-257)
          (const :tag "PEP-257 with 1 newline at end of string." pep-257-nn)
          (const :tag "Symmetric style." symmetric))