讓vim在讀取檔案時忽略轉換錯誤

讓vim在讀取檔案時忽略轉換錯誤

我有一個帶有 BOM 的 UTF-16 檔案。我已將文件編碼設定為:

set fencs=ucs-bom,utf-16le,utf-8,default,latin1    

然而,由於一行上有一個字符,vim 不會自動檢測 UTF-16 並預設為 latin1,所有^@空標記。在強制 vim 將文件讀取為 UCS ( :e ++enc=ucs-bom) 時,它成功讀取文件,但報告“第 {nn} 行中的轉換錯誤”,但除此之外,文件的其餘部分已正確轉換。如果刪除了錯誤字符,則文件將被正確解釋和顯示。

有沒有辦法讓 vim 忽略轉換錯誤?每次有有效 BOM 時都強制編碼有點煩人。

答案1

轉換錯誤表示資料已損壞(或寫入檔案後已損壞),因此沒有全域設定可以忽略這些錯誤。在您的情況下,這可能只是一個無關緊要的字符,但在另一種情況下,它可能會默默地使整個文件變得無用。

++bad=...您可以透過參數 (cp. )抑制轉換錯誤:help ++bad,該參數的前綴:edit就像++enc=...

如果您確實想抑制所有轉換錯誤,則必須編寫自訂:EditBad命令:

:command! -bar -bang -nargs=* -complete=file EditBad edit<bang> ++bad=? <args>

相關內容