Windows上的Vim开始显示^ M个字符

时间:2013-05-20 19:22:49

标签: vim powershell

我在Windows 7上运行PowerShell 2.0版。

我使用以下PowerShell代码(来自此答案:https://stackoverflow.com/a/65148/360840)来修改我的PowerShell配置文件:

"`nNew-Alias which get-command" | add-content $profile

正如所料,它将有问题的行添加到我的个人资料中,但之后,我的Vim会话开始在每行的末尾显示^ M个字符。很奇怪!有什么原因导致它以及如何解决它的任何线索?我在Vim中尝试了set fileformat=dos,但没有做任何事。

这是我的Vim版本信息:

vim version

(不确定如何使图片更大 - 这不是正常尺寸。)

3 个答案:

答案 0 :(得分:4)

有一些选项可以解决vim-faq 14.13. I am seeing a lot of ^M symbols in my file. I tried setting the 'fileformat' option to 'dos' and then 'unix' and then 'mac'. None of these helped. How can I hide these symbols?

中的问题

您的文件可能是unix文件格式(所有行以<CR>结尾),并且您附加了dos文件格式的行(以{{1}结尾的行是什么让Vim感到困惑。

答案 1 :(得分:1)

所以,我遇到了这个问题,解决方案略有不同。我检查了我的文件格式,它是unix,你可以查看你的 :set fileformat? 它显示了我不想要的所有^ M个字符...有趣的是,在上面指出的VIM手册中:http://vimhelp.appspot.com/vim_faq.txt.html#faq-14.13表示^ M行结尾来自DOS文件格式和“如果文件有一些行结束,一些行以#结尾,则fileformat设置为'unix'。”

所以,考虑到这一点,你似乎想要删除所有^ M结尾,并保留结尾,但删除结尾:%s/\r$//立即解决了我的问题,文件格式仍然说'unix'。

这对我有用。作为旁注,为了提供更具谷歌能力的参考,我想注意我在使用LocomotiveCMS时遇到了这个问题。我正在使用Wagon将我的CSS文件拉回本地工作。当我拿回它时,它充满了^ M个字符,文件仍然正常,它只是丑陋。

答案 2 :(得分:0)

问题是该文件已损坏。在这种情况下, Vim开始显示^ M个字符以提醒您出现问题。修复方法是手动删除这些字符(%s/^M//g)

我还不清楚,因为Windows文件格式使用它们时,这些字符在文件中被支持。但至少问题已经解决了。

编辑:请查看与dash-tom-bang的意见交换,其中提供了澄清。