Emacs 在保存之前检查文件的语法

Emacs 在保存之前检查文件的语法

当缓冲区包含语法错误时,如何防止 Emacs 保存它?

它对于编辑源代码特别有用。

我正在将一些源代码写入缓冲区,点击 Cx Cs,Emacs 应该会将光标定位在包含错误的行上。我正在更正错误,再次点击保存命令,Emacs 应该会保存文件。

答案1

我解决这个问题的方法是将 Cx Cs 重新绑定到astropanic-save-buffer一个 elisp 函数,该函数将通过您的编译器/构建过程运行当前缓冲区的内容。如果通过,它将运行save-buffer,如果出现错误,它将创建一个带有错误消息的新缓冲区/窗口分割,以便您可以修复它。

还可以考虑使用write-file-functions(更多信息) 挂钩来附加工作流程save-buffer,但我对此持谨慎态度,因为虽然我可能认为我在某些模式下想要这样做,但并不是在所有模式下我都会这样做。

答案2

Emacs飞马模式可能接近您想要的。它对当前缓冲区的源代码进行动态编译/语法检查。

相关内容