众所周知,DOS/Windows 文件中的行尾与 Unix/Linux 不同,所以每当我打开使用 Windows 创建的文件时,每行后面都会看到数百个 ^M。许多人建议使用以下方法解决此问题:
set fileformat=dos
我试过这个,但它不起作用,因为据我所知,它告诉 Vim 如何“保存”文件,而不是如何“读取”文件。我想要的是保持行尾不变,无论是 Linux、Windows 还是 MAC,正确读取它们,并在编辑后使用相同的格式保存文件。
任何的想法?
众所周知,DOS/Windows 文件中的行尾与 Unix/Linux 不同,所以每当我打开使用 Windows 创建的文件时,每行后面都会看到数百个 ^M。许多人建议使用以下方法解决此问题:
set fileformat=dos
我试过这个,但它不起作用,因为据我所知,它告诉 Vim 如何“保存”文件,而不是如何“读取”文件。我想要的是保持行尾不变,无论是 Linux、Windows 还是 MAC,正确读取它们,并在编辑后使用相同的格式保存文件。
任何的想法?
添加
set fileformats=unix,dos,mac
到你的 vimrc。
:e ++ff=dos
如果 vim 未能检测到正确的行尾,则在打开的文件中运行。
" put this in your ~/.vimrc, resource then and try :Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
let _s=@/
let l = line(".")
let c = col(".")
try
set ff=unix
w!
"%s/\%x0d$//e
catch /E32:/
echo "sorry, first save your file."
endtry
let @/=_s
call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()