当缓冲区为空时,如何使相对缩进不缩进?

How to make indent-relative not indent when the buffer is empty?

我有一个函数可以覆盖 return 上的缩进行为,使其成为一个简单的块缩进。问题是 indent-relative 和 indent-relative-maybe 都会在缓冲区为空时缩进。

当我创建缓冲区时,我可能希望在顶部有几个空行,这些函数会导致光标在没有要缩进的上一个块时缩进。

我该如何解决这个问题?

(defun my-enter ()
  "Inserts a newline character then indents the new line just like the previous line"
  (interactive)
  (newline)
  (indent-relative-maybe))

鉴于您在 "empty" 的定义中包含 "contains newlines",您可以应用以下约束:

(unless (looking-back "\`\n*")
  (indent-relative-maybe))