在 emacs 的模式行中设置 inline-open

setting inline-open in modeline in emacs

我的 .emacs 中有这个:

(c-set-offset 'inline-open 0)

有没有办法 "unset" 在模式行中内联打开,以便对于某些文件,内联打开确实会导致缩进?

谢谢。

您可以像您怀疑的那样使用 file variables 完成此操作。要么在顶部,要么在底部。

要在顶部执行此操作,请添加:

// -*- eval: (setq c-offsets-alist (assq-delete-all 'inline-open c-offsets-alist)) -*-

在文件的顶部。

或者,您可以将它以稍微不同的格式添加到文件末尾。

// Local Variables:
// eval: (setq c-offsets-alist (assq-delete-all 'inline-open c-offsets-alist))
// End:

注意:Emacs 会在您第一次打开文件时使用这种技巧询问您,如果您回答 !,Emacs 会自动将此代码添加到列表中在文件局部变量中被认为是 "safe" 的东西。它将在您的 .emacs.customization.el 文件中设置 safe-local-variable-values

注2:代码片段使用的是C++风格的注释,如果需要C注释,或者其他注释方案,请适当调整。