代码之家  ›  专栏  ›  技术社区  ›  Léo Léopold Hertz 준영

将类型从VIM中的conf更改为Nothing

  •  1
  • Léo Léopold Hertz 준영  · 技术社区  · 15 年前

    对于类型为conf的文件,我的语法-highlighting已中断,如下所示:

    语法突出显示不起作用的文件

    alt text http://files.getdropbox.com/u/175564/bugs/vim-bug-type.png

    语法突出显示适用于扩展名为.markdown的所有其他文件。但是,这些文件之间的唯一区别是,其他文件的类型为Nothing,而具有Bug的文件的类型为Conf。

    语法突出显示工作的文件

    alt text http://files.getdropbox.com/u/175564/bugs/vim-bug-syntax2.png

    如何将类型从vim中的conf改为nothing?

    2 回复  |  直到 15 年前
        1
  •  3
  •   DrAl    15 年前

    尝试:

    :setf none
    

    或(相当地):

    :set ft=
    

    如果您希望自动执行,则需要配置语法检测。创建一个文件(如果不存在):vimfiles/after/filetype.vim或~/.vim/after/filetype.vim。在此文件中,添加以下行:

    au BufNewFile,BufRead *.markdown        set ft=none
    

    或者,从下载markdown语法 here (我没有尝试过)并配置为:

    au BufNewFile,BufRead *.markdown        set ft=mkd
    

    更多信息:

    :help :setf
    :help 'filetype'
    :help :autocmd
    :help BufRead
    :help BufNewFile
    

    据了解,问题的产生是因为 .markdown 扩展名无法识别,因此Vim查看内容以尝试确定文件类型。假设您的文件中有一些看起来有点像配置文件,所以它做了最好的猜测。猜测是在系统中进行的 filetype.vim ,通常位于c:\vim\vim72或/usr/share/vim/vim72/filetype.vim(我认为)中,如下所示:

    " Generic configuration file (check this last, it's just guessing!)
    au BufNewFile,BufRead,StdinReadPost *
        \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
        \    && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
        \   || getline(4) =~ '^#' || getline(5) =~ '^#') |
        \   setf conf |
        \ endif
    

    这将检查前五行中是否有一行以 # 如果有,并且没有其他文件类型匹配,则将文件类型设置为 conf .

        2
  •  3
  •   Brian Agnew    15 年前
    :set filetype=
    

    将文件类型设置为“无”。