#windows #unix #vim #vim-plugin
#Windows #unix #vim #vim-плагин
Вопрос:
В моем ~/vimfiles/vimrc
файле у меня есть следующая строка кода:
set fileformats=unix
В моем ~vimfilesftplugindosbatch.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
Похоже, что мои два параметра в ~vimfilesftplugindosbatch.vim
файле не вступают в силу. почему?
Разве значения параметра в ~vimfilesftplugindosbatch.vim
файле не должны переопределять set fileformats=unix
конфигурацию в vimrc?
В каком порядке vim считывает и выполняет файл vimrc, файл ftplugin?
Ответ №1:
Я нашел решение.Измените содержимое файла dosbatch.vim следующим образом:
if !exists("dos_isreload")
let dos_isreload = 1
e ff=dos
setlocal fileformat=dos
w
endif
Причина: Когда vim загружает и выполняет dosbatch.vim, vim загрузил содержимое файла в буфер и использовал fileformate, созданный set fileformats=unix
.