在vim中是否有没有后缀的文件的FileType名称?

时间:2015-06-30 04:47:26

标签: vim

根据我目前的知识,我可以使用autocmd FileType markdown colorscheme zen之类的命令为特定类型的文件设置colorscheme。
现在我需要为所有那些没有后缀的文件使用colorscheme 例如no_suffix_file

我在网上做了一些研究,但没有找到相关的信息 我想vim中的这类文件可能有一个名称,至少是vim' s FileType detector range中所有其他文件的名称。

它是什么?

2 个答案:

答案 0 :(得分:3)

无论你放在vimrc中的是什么用于每个缓冲区,包括没有filetype缓冲区,除非有ftplugin覆盖你的通用设置

解决此问题的一种方法是至少涉及一个自动命令和一个函数:

function! MyColors()
    if &filetype == ""
        colorscheme noft
    elseif &filetype == "foo"
        colorscheme foo
    elseif &filetype == "bar"
        colorscheme bar
    else
        colorscheme baz
    endif
 endfunction

 augroup colors
     autocmd!
     autocmd BufNewFile,BufEnter * call MyColors()
 augroup END

请注意,colorschemes无论如何都是全局的,所以我不确定这是个好主意。

答案 1 :(得分:0)

当Vim 可以从文件扩展名中确定文件的类型时,它会。例如,名称以" .c"结尾的文件。几乎总是C语言文件,所以Vim设置" c"文件类型。

但是,没有扩展名的文件可以完全属于任何类型。它们可以是makefile,配置文件,shell脚本......

某些文件类型可以由其内容确定,即使它们没有扩展名。例如,脚本语言文件(perl,python等)以及shell脚本通常会有一个" hashbang"告诉shell调用什么程序来解释脚本。 Vim也可以使用此行来确定文件类型。其他文件类型具有其他区别特征。

有关详细信息,请参阅s;有关示例,请参阅文件:help new-filetype-scripts(以及默认安装中内容中Vim检测到的文件)。

如果未从文件扩展名中检测到文件类型,并且未从文件内容中检测到文件类型,则Vim将不会分配任何文件类型,并且$VIMRUNTIME/scripts.vim选项将为空。 romainl的回答显示了如何检测空文件类型。