没有扩展名的文件在vim中的默认语法

17

我该如何在vim中为没有扩展名的文件设置默认语法?

3个回答

23

一种方法是在.vimrc中为没有语法设置的文件添加一个自动命令:

au BufNewFile,BufRead * if &syntax == '' | set syntax=html | endif

或者,你可以为任何没有定义文件类型的文件设置文件类型:

filetype plugin on
au BufNewFile,BufRead * if &ft == '' | set ft=html | endif

如果您有任何HTML插件,同时使用filetype plugin onau命令可以获得额外的好处。这也将语法设置为“html”。


6
为了选择没有扩展名的文件的默认语法,您可以创建一个自动命令,检查文件名是否包含“.”,如果没有,则切换到所需的语法:
autocmd BufNewFile,BufRead * if expand('%:t') !~ '\.' | set syntax=perl | endif

这个示例默认使用perl语法,但你可以根据需要使用任何适当的语法。

0
如果我没记错的话,你可以在~/.vim/syntax文件夹中放置一个名为syntax.vim的文件。该文件将被用作默认的语法高亮源。 如果你的.vim文件夹不存在,你需要创建它:
mkdir ~/.vim
mkdir ~/.vim/syntax
touch ~/.vim/syntax/syntax.vim

现在你可以将默认语法添加到syntax.vim文件中。 如需进一步文档,请查看vim sourceforge页面

希望这有所帮助。


请在您的描述中更准确地说明您的问题。目前它不是很具体。 - apparat
有些文件没有扩展名(后缀),对吧?比如说,我处理的HTML文件没有 .html 后缀。它们的命名方式是这样的:file1、file2 等等。现在,我想让 Vim 在打开这些没有扩展名的文件时自动设置 HTML 语法。我该怎么做呢? - zly
1
@zly:这可以用来精确地做你要求的事情 - 你可以编辑已安装的syntax.vim,或将其复制到~/.vim/syntax中。当你运行syntax enable时,该文件会被调用,因此它可以轻松地检查是否检测到了文件类型,并在没有检测到时使用默认(例如html)语法。 - Cascabel
@Jefromi,我期望的是具体细节而不是指导方针;猜想我没有表达清楚我期望什么;-) @Curt Nelson确实回答了我的问题。 - zly

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