为什么文件格式选项不适用于 vim 中的 ftplugin 文件?
Why fileformats option does not work with ftplugin file in vim?
在我的 ~/vimfiles/vimrc
文件中,我有以下代码行:
set fileformats=unix
在我的~\vimfiles\ftplugin\dosbatch.vim
文件中,有两行代码:
setlocal fileformats=dos
setlocal fileformat=dos
我有一个名为foo.bat的文件,是dosbatch文件类型,文件格式是dos;我用vim打开,屏幕显示^M
个字符,如下:
@echo off^M
echo i am line1^M
echo i am line2^M
echo i am line3^M
pause
看来我在~\vimfiles\ftplugin\dosbatch.vim
文件中的两个选项没有生效。为什么?
~\vimfiles\ftplugin\dosbatch.vim
文件中的选项值不应该覆盖 vimrc 中的 set fileformats=unix
配置吗?
vim以什么顺序读取和执行vimrc文件,ftplugin文件?
我找到了一个solution.Modifydosbatch.vim的文件内容如下:
if !exists("dos_isreload")
let dos_isreload = 1
e ++ff=dos
setlocal fileformat=dos
w
endif
原因:当vim加载并执行dosbatch.vim时,vim已将文件内容加载到缓冲区中,并使用了set fileformats=unix
生成的文件格式。
在我的 ~/vimfiles/vimrc
文件中,我有以下代码行:
set fileformats=unix
在我的~\vimfiles\ftplugin\dosbatch.vim
文件中,有两行代码:
setlocal fileformats=dos
setlocal fileformat=dos
我有一个名为foo.bat的文件,是dosbatch文件类型,文件格式是dos;我用vim打开,屏幕显示^M
个字符,如下:
@echo off^M
echo i am line1^M
echo i am line2^M
echo i am line3^M
pause
看来我在~\vimfiles\ftplugin\dosbatch.vim
文件中的两个选项没有生效。为什么?
~\vimfiles\ftplugin\dosbatch.vim
文件中的选项值不应该覆盖 vimrc 中的 set fileformats=unix
配置吗?
vim以什么顺序读取和执行vimrc文件,ftplugin文件?
我找到了一个solution.Modifydosbatch.vim的文件内容如下:
if !exists("dos_isreload")
let dos_isreload = 1
e ++ff=dos
setlocal fileformat=dos
w
endif
原因:当vim加载并执行dosbatch.vim时,vim已将文件内容加载到缓冲区中,并使用了set fileformats=unix
生成的文件格式。