如何设置vim默认对给定目录/路径中所有文件进行语法高亮?

3
如果我在~/maildir-sent/中打开一个特定的邮件文件,则该文件没有语法高亮显示。 Vi对邮件文件有默认的高亮显示,我可以使用

:set ft=mail 手动打开它。这不是默认发生的,因为那里的邮件文件具有令人困惑的名称结构1339174749.7162_2.tm24-s00418:2,S

如何使邮件文件高亮显示成为默认行为? 我认为这个默认值的意思是“所有未被其他语法高亮定义所匹配的文件”。

1个回答

7

在你的 .vimrc 文件中使用 autocmd

autocmd BufRead ~/maildir-sent/* setlocal ft=mail

请参阅:help autcmd,以获取更多信息。


如果在该目录中有一个.rb文件,它是否仍然会被突出显示为Ruby文件? - New Alexandria
一般情况下不需要,但这取决于你的设置。如果你有很多不同的文件类型需要在目标目录中进行特定的高亮显示,最好在autocommand中指定文件扩展名。由于这是一个_邮件_目录,似乎不需要非常具体。你可以通过为目录和特定扩展名添加其他autocommands来解决此类问题。 - pb2q
到目前为止,即使使用 au 代替 autocommand,在我的 vim 7.3 上仍然不能正常工作。你已经指出了正确的方向,但我还没有完全找到解决方案。 - New Alexandria
@NewAlexandria 在答案中纠正了一个错误,我打错了 BufEnter 的写法,实际应该是 BufRead - pb2q
很遗憾,还没有。你一定已经接近语法了,而我也还没有找到它。我知道Stack Overflow不是“技术支持”的地方,但我认为我们的Vim可能并没有太大的区别。也许你在你的.vimrc文件中有额外的东西。 - New Alexandria
1
@NewAlexandria 今天肯定放假了:应该是 autocmd 而不是 autocommand。抱歉。当你使用那行命令启动时,应该会看到 _Not an editor command: autocommand ..._。 - pb2q

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接