2010-04-16 36 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 

(应绑定到一个键序列)保存文件前。

相关问题