终端打印回车符为 ^M??

终端打印回车符为 ^M??

我正在 vim 中编写脚本,放下键盘,继续编码。

我没有注意到我的光标从正常的 _ 类型光标变为 [] 块。(就像我在 Windows 终端中按下插入键一样)
我启动了脚本,然后出现 /bin/bash^M:错误的解释器错误。

经过大量的谷歌搜索,^M 是 dos 回车符。但是当我在终端中按下回车键时,它看起来像一个正常的回车符。但 bash 将其解释为 ^M。

我几乎猛击键盘,看看我到底按了什么来改变这种情况。有人能帮我吗?

答案1

当您放下键盘时,它不仅会按下按键Insert,而且还会输入命令:set tx。在相关文件的编辑缓冲区中运行该:set fileformat=unix命令,然后重新保存缓冲区。

答案2

要将带有 CRLF 行终止符的文件转换为 LF,请运行:

sed 's/\r$//' -i your-script-filename

如果这是 vim 的问题(而不是你的终端),请查看即使文件模式明确为 DOS,gVim 也会显示回车符(^M)

相关内容