2011-01-09 27 views
1

大家都知道,DOS/Windows文件中的行結尾與Unix/Linux中的不同,因此無論何時我打開使用Windows創建的文件,都會看到數百個^每行之後的M。許多人建議使用解決這個問題:在Linux中讀取DOS/Windows文本文件

set fileformat=dos 

我試過,但它不工作,因爲據我注意到,它告訴Vim如何「拯救」的文件,而不是如何「讀」文件。我想要的是保持行結束,不管它們是Linux,Windows還是MAC,正確讀取它們,並在編輯後使用相同的格式保存文件。

有什麼想法?

回答

3
  1. 添加

    set fileformats=unix,dos,mac 
    

    到你的vimrc。

  2. 在打開的文件中運行:e ++ff=dos如果vim未能檢測到正確的行結束。

+0

太棒了!所以你的意思是「設置fileformats = unix,dos,mac」應該做這個工作,但在我的情況下,它沒有檢測到正確的行結束符?爲什麼會失敗?在檢測行結束時我沒有看到任何困難,尤其是對於像Vim這樣的高級編輯器。 – Rafid 2011-01-09 10:06:11

0
" put this in your ~/.vimrc, resource then and try :Dos2Unix 
" dos2unix ^M 
fun! Dos2unixFunction() 
    let [email protected]/ 
    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()