为什么FileFormats选项与VIM中的FTPlugin文件不使用



在我的 ~/vimfiles/vimrc文件中,我有以下代码行:

 set fileformats=unix

在我的~vimfilesftplugindosbatch.vim文件中,有两行代码:

 setlocal fileformats=dos
 setlocal fileformat=dos

我有一个名为 foo.bat 的文件,它是dosbatch filetype,文件格式为dos;我使用vim打开它,屏幕显示^M字符,如下:

@echo off^M
echo i am line1^M
echo i am line2^M
echo i am line3^M
pause

看来我在~vimfilesftplugindosbatch.vim文件中的两个选项未生效。为什么?

~vimfilesftplugindosbatch.vim文件中的选项值不应该覆盖VIMRC中的set fileformats=unix配置?

vim以什么顺序读取并执行vimrc文件,ftplugin文件?

我找到了一个解决方案。修改dosbatch.vim的文件内容如下:

if !exists("dos_isreload")
    let dos_isreload = 1
    e ++ff=dos   
    setlocal fileformat=dos
    w
endif

原因:当VIM加载并执行dosbatch.vim时,VIM将文件的内容加载到缓冲区中,并使用set fileformats=unix生成的文件formate。

相关内容

  • 没有找到相关文章

最新更新