运行 opening/finding 文件之前的函数
Running a function before opening/finding a file
我正在尝试创建一个函数,该函数应该在缓冲区中的文件 opened/shown 之前 运行。这个函数真的只需要运行一次。
我尝试根据即将查看的文件内容设置模式。我知道 add-to-list 'auto-mode-alist <filename-regexp> . <mode>
但这还不够。理想情况下,我想解析文件(或只是其中的一小部分)并在设置模式之前检查文件内容。通常视图文件(想想 mvc 框架中的 .js/.php 等)与 "pure" 代码中的文件具有相同的扩展名,所以我不能只检查文件扩展名。
为什么?
基本上,在使用任何模板语言时,我通常想使用 web-mode
,而在编写 "pure" 代码时,我想使用该语言的模式。
所以基本上我想在之前解析文件,并检查一些正则表达式,如果匹配我会设置 web-mode
如果不匹配我会设置我想使用的语言模式。
我知道我可以轻松地手动更改模式,但我宁愿让 Emacs 来完成。
您可能希望将函数放入 find-file-hook
。
当它是 运行 时,major-mode
已经设置,但您可以更改它。
如果您拥有相关文件,您可能还想探索 file variables。
您可以使用 magic-mode-alist
。您可能需要使用 MATCH-FUNCTION 来检查缓冲区的文件名及其内容。
我正在尝试创建一个函数,该函数应该在缓冲区中的文件 opened/shown 之前 运行。这个函数真的只需要运行一次。
我尝试根据即将查看的文件内容设置模式。我知道 add-to-list 'auto-mode-alist <filename-regexp> . <mode>
但这还不够。理想情况下,我想解析文件(或只是其中的一小部分)并在设置模式之前检查文件内容。通常视图文件(想想 mvc 框架中的 .js/.php 等)与 "pure" 代码中的文件具有相同的扩展名,所以我不能只检查文件扩展名。
为什么?
基本上,在使用任何模板语言时,我通常想使用 web-mode
,而在编写 "pure" 代码时,我想使用该语言的模式。
所以基本上我想在之前解析文件,并检查一些正则表达式,如果匹配我会设置 web-mode
如果不匹配我会设置我想使用的语言模式。
我知道我可以轻松地手动更改模式,但我宁愿让 Emacs 来完成。
您可能希望将函数放入 find-file-hook
。
当它是 运行 时,major-mode
已经设置,但您可以更改它。
如果您拥有相关文件,您可能还想探索 file variables。
您可以使用 magic-mode-alist
。您可能需要使用 MATCH-FUNCTION 来检查缓冲区的文件名及其内容。