2010-04-16 75 views
4

我必須使用windows編寫一些shell腳本。我決定用emacs,但在運行腳本時,我得到一個奇怪的錯誤:如何強制emacs使用 n而不是 r n

/bin/bash^M: bad interpreter: No such file or directory

糾正我,如果我錯了,但看起來像家當在\ r \結束的n而不只是\ ñ。我如何告訴emacs只寫\ n?我在Shell腳本主要模式。這是非常令人驚訝的,這是默認情況下不固定的。

+2

作爲臨時解決方法,大多數* nix系統都安裝了用於轉換行結束符的'dos2unix'實用程序。 – 2010-04-16 17:00:01

+0

是的,我現在正在使用它。 – User1 2010-04-16 17:00:32

+0

你在Windows下編寫這些腳本,但使用bash運行它們? – eaolson 2010-04-17 15:51:15

回答

6

正如Jürgen提到的那樣,您需要使用set-buffer-file-coding-system。你可以說

(set-buffer-file-coding-system 'unix) 

,並堅持認爲到find-file-hook內部的功能,因此,它會設定所有你打開的緩衝區。或者,您可以將其放入write-file-hook列表中,以便在將文件轉儲到磁盤之前正確設置文件編碼系統。

要獲得更簡單的解決方案,如果您使用的是Emacs的GUI版本,則可以單擊左側模式行中的第3個字符。它是在eol格式之間切換。

0

用途:

set-buffer-file-coding-system 

(應綁定到一個鍵序列)保存文件前。

相關問題