为什么^ M和^ [被追加到我的文件?

我注意到,有时Vim在每行的末尾显示^M ,或者^[在左括号[前面。

这些字符是什么意思,我该如何摆脱它们?

我在Debian上运行Vim 7.3。

这些是控制字符。 ^ M代表回车,在窗口中使用作为其他答案已经解释。

^ [是转义字符。 当后面跟着一个方括号(“[”)时,它可能意味着一个ANSI转义序列。 看到这篇文章了解更多:

http://en.wikipedia.org/wiki/ANSI_escape_code

并试试看。 例如,在您的终端中:

 echo ^[[7mHello World!^[[m 

每个^ [可以插入控件 V 控件 [ 。 所以打字的顺序实际上是:

控制 V 控制 [ [ 7

^ M是dos式的行尾。 你可以通过使用dos2unix程序来摆脱它们:

dos2unix(yourfile)

这些是控制字符。 这里是如何在vi中删除它们的链接。

这篇关于Vim wiki的文章应该会帮助你: 文件格式 。

虽然文章标题看起来可能不一样,但它讨论了行结尾和unix / dos / macos文件格式。