我必须使用windows来编写一些shell脚本。我决定使用emacs,但是在运行脚本时出现了一个奇怪的错误:
/bin/bash^M: bad interpreter: No such file or directory
如果我错了,请纠正我,但看起来shebang在\ r \ n而不是\ n结束。如何判断emacs只能写\ n?我在Shell脚本主要模式。非常令人惊讶的是,默认情况下没有修复。
答案 0 :(得分:6)
正如Jürgen所说,你需要使用set-buffer-file-coding-system
。你可以说
(set-buffer-file-coding-system 'unix)
并将其粘贴到find-file-hook
内的函数中,以便为您打开的所有缓冲区设置它。或者,您可以将其放在write-file-hook
列表中,以便在将文件转储到磁盘之前正确设置文件编码系统。
更简单的方法是,如果您使用的是Emacs的GUI版本,则可以单击左侧的模式行中的第3个字符。这是在eol格式之间切换。
答案 1 :(得分:0)
使用:
set-buffer-file-coding-system
保存文件前(应绑定到键序列)。