【问题标题】:How to force emacs to use \n instead of \r\n如何强制 emacs 使用 \n 而不是 \r\n
【发布时间】:2010-04-16 16:57:10
【问题描述】:

我必须使用 windows 来编写一些 shell 脚本。我决定使用emacs,但是在运行脚本时出现了一个奇怪的错误:

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

如果我错了,请纠正我,但看起来 shebang 以 \r\n 而不是 \n 结尾。我怎样才能告诉emacs只写\ n?我处于 Shell 脚本主要模式。令人惊讶的是,默认情况下并未修复此问题。

【问题讨论】:

  • 作为一种临时解决方法,大多数 *nix 系统都安装了 dos2unix 实用程序来转换行尾。
  • 是的,我现在正在使用它。
  • 您如何在 Windows 下编写这些脚本但使用 bash 运行它们?
  • 我使用tramp's plink 进入Linux 机器。

标签: emacs shell newline


【解决方案1】:

正如 Jürgen 所说,您需要使用 set-buffer-file-coding-system。你可以说

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

并将其粘贴到find-file-hook 内的函数中,以便它将为您打开的所有缓冲区设置它。或者,您可以将它放在write-file-hook 列表中,以便在将文件转储到磁盘之前正确设置文件编码系统。

为了更简单的方法,如果您使用的是 Emacs 的 GUI 版本,您可以单击模式行中左起第三个字符。这是在 eol 格式之间切换。

【讨论】:

    【解决方案2】:

    用途:

    set-buffer-file-coding-system
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 2010-12-20
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多