2

我刚刚python-mode从 ELPA 安装,当我点击Enter光标时直接进入下一行的开头。例如以下代码:

def hello_world():
    print "hello world!"
    for i in range(3):
        print "hello again"
    return 0

每次点击后我都必须点击TAB后才能进入换行符(尽管有趣的是会将光标发送到正确的位置)。EnterEnterTAB

当我安装时,python-mode我收到了一些与缩进有关的警告消息,但我不太了解,这里是这些警告消息的链接

4

3 回答 3

4

C-j是我正在寻找的关键('newline-and-indent' 命令)。我设法Enter通过在我的 init.el 中放置以下钩子来重新绑定:

(add-hook 'python-mode-hook
          (lambda ()
             (define-key python-mode-map "\r" 'newline-and-indent)))
于 2013-08-15T22:05:31.907 回答
3

不知道为什么要安装 python-mode,因为 Emacs 内置了 Python 支持,但我认为这不会影响其余部分。如果您希望 RET 在插入换行符后缩进,您可能喜欢到处都这样,所以您可能希望启用electric-indent-mode.

于 2013-08-16T01:52:04.823 回答
2

尝试使用C-j而不是enter.

实际上,C-jis bound to (newline-and-indent),它执行问题中提到的两个步骤(enter和)。tab

从版本 24.4.50.1 开始,默认行为已被反转,即enter在需要时添加换行符和缩进,C-j而不需要。尽管这些键绑定映射到的功能与上面提到的不同。

于 2013-08-15T21:14:29.390 回答