關於 web service, unity, blogger 等軟體工程筆記

There are inconsistent line endings in the 'SomeScript.cs' script. Some are Mac OS X (UNIX) and some are Windows. 的處理方法

Edit icon 沒有留言
Unity

Unity 使用上常常遇到的警告,經常從 Unity Project 點選程式碼,使用預設的 IDE - Visual Studio 編輯程式碼後,回到 Unity 等待編譯完成後,會遇到丟出來的警告訊息:

There are inconsistent line endings in the ‘Assets/Example.cs’ script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.

意思是 ‘Assets/Example.cs’ script 存在不一致的換行符號,有些是 Mac OS X (UNIX) 的換行符號 (LF)(\n),有些是 Windows 的換行符號 (CR+LF)(\r\n),這可能導致錯誤的行號計算,或者是編譯錯誤。許多文字編輯器都有存在換行符號的功能調整。(關於個作業系統的換行符號定義,請參考 Reference)

目前因為僅使用 Windows 開發編譯,還沒有遇到過編譯錯誤,但這警告訊息的出現實在是很煩人,以前都是這樣處理:

  • 開啟 NotePad++ (強大的文字編輯器之一)
  • 開啟發生該警告的檔案
  • 編輯 > 換行符號 > 轉換成 Windows 格式 (Edit > EOL Conversion > Windows EOL) * EOL, end of line
  • 執行 EOL 調整解決該錯誤

但這樣做很慢又麻煩,因此上網尋找其他的處理方式,找到一個簡單的處理方式,是修改 Visual Studio IDE 的設定:

  • Tool > Options > Environments > Documents > Check for consistent line ending on load
  • 開啟檔案會跳出其對話視窗提示

    自動調整 EOL 提示視窗
  • 選擇 Yes 即可,將 Always show this dialog 取消,未來開啟檔案會自動調整
    • 之前應該是把這功能關閉了,所以常常出現這個警告…

大量批次的修改方法

使用 NotePad++ 在檔案中尋找的取代:

  • Ctrl + H 開啟取代視窗
  • 切換在檔案中尋找
  • 搜尋模式選擇 延伸 (\r, \r, \t, \0, \x...)
  • 設定資料夾位置以及過濾 *.cs
  • 將 \n 取代成 \r\n
  • 將 \r\r\n 取代成 \r\n
  • Done

Reference

沒有留言: