我必須使用windows編寫一些shell腳本。我決定用emacs,但在運行腳本時,我得到一個奇怪的錯誤:如何強制emacs使用 n而不是 r n
/bin/bash^M: bad interpreter: No such file or directory
糾正我,如果我錯了,但看起來像家當在\ r \結束的n而不只是\ ñ。我如何告訴emacs只寫\ n?我在Shell腳本主要模式。這是非常令人驚訝的,這是默認情況下不固定的。
我必須使用windows編寫一些shell腳本。我決定用emacs,但在運行腳本時,我得到一個奇怪的錯誤:如何強制emacs使用 n而不是 r n
/bin/bash^M: bad interpreter: No such file or directory
糾正我,如果我錯了,但看起來像家當在\ r \結束的n而不只是\ ñ。我如何告訴emacs只寫\ n?我在Shell腳本主要模式。這是非常令人驚訝的,這是默認情況下不固定的。
正如Jürgen提到的那樣,您需要使用set-buffer-file-coding-system
。你可以說
(set-buffer-file-coding-system 'unix)
,並堅持認爲到find-file-hook
內部的功能,因此,它會設定所有你打開的緩衝區。或者,您可以將其放入write-file-hook
列表中,以便在將文件轉儲到磁盤之前正確設置文件編碼系統。
要獲得更簡單的解決方案,如果您使用的是Emacs的GUI版本,則可以單擊左側模式行中的第3個字符。它是在eol格式之間切換。
用途:
set-buffer-file-coding-system
(應綁定到一個鍵序列)保存文件前。
作爲臨時解決方法,大多數* nix系統都安裝了用於轉換行結束符的'dos2unix'實用程序。 – 2010-04-16 17:00:01
是的,我現在正在使用它。 – User1 2010-04-16 17:00:32
你在Windows下編寫這些腳本,但使用bash運行它們? – eaolson 2010-04-17 15:51:15