2

我在 Emacs 中使用 python-mode.el 来编辑一些 Python 代码,它具有最烦人的功能,它会自动缩进注释然后开始新行。例如,如果我有这个:

def x():
    y = 1
<cursor is here, at root indentation level>

然后在根缩进级别添加一个#:

def x():
    y = 1
    #
<cursor is now here>

它会自动缩进,插入 #,并在 # 之后插入回车。这让我疯狂。我希望我的评论保持在我放置它们的位置!有什么建议么?

我查看了该模式的 elisp 代码,但找不到任何东西,也无法在网上其他地方找到任何东西。我所能找到的只是评论不会用于未来的缩进(py-honor-comment-indentation),但与评论本身无关。也不是奇怪的回车。

4

2 回答 2

2

在提交错误报告

https://bugs.launchpad.net/python-mode/+bug/1092847

Mx 自定义 py-electric-comment-p RET

将其设置为“nil”应该可以解决它。

另见变量“py-indent-comments”

于 2012-12-21T10:29:19.937 回答
0

好的,找到了。

有问题的功能是 py-electric-comment。

默认情况下,可以在插入 # 后调用它。您可以通过将 py-electric-comment-p 设置为 nil 来禁用此功能。

您还可以通过编辑这部分功能来编辑 py-electric-comment:

    (let ((orig (copy-marker (point)))
                (indent (py-compute-indentation)))
      (unless (eq (current-indentation) indent)
            (goto-char orig)  ;;; REMOVE THIS LINE
              (beginning-of-line)
              (delete-horizontal-space)

这将使您保持启用 py-electric-comment 但不会尝试返回到原始缩进级别,从而解决原始问题。

于 2012-12-20T18:34:11.430 回答