1

众所周知,DOS/Windows 文件中的行尾与 Unix/Linux 不同,所以每当我打开使用 Windows 创建的文件时,每行后面都会看到数百个 ^M。许多人建议使用以下方法解决此问题:

set fileformat=dos

我试过这个,但它不起作用,因为据我所知,它告诉 Vim 如何“保存”文件,而不是如何“读取”文件。我想要的是保持行尾不变,无论是 Linux、Windows 还是 MAC,正确读取它们,并在编辑后使用相同的格式保存文件。

任何的想法?

4

2 回答 2

3
  1. 添加

    set fileformats=unix,dos,mac
    

    到你的 vimrc。

  2. :e ++ff=dos如果 vim 未能检测到正确的行尾,则在打开的文件中运行。

于 2011-01-09T09:55:36.067 回答
0
" 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()
于 2011-01-09T15:59:29.717 回答