我在Windows上使用gVim.我的代码^M
在行尾显示字符.我:set ff=dos
以前没有用.^M
现有行的字符仍然存在,但不会显示我输入的换行符.我已将模式切换为mac(显示^J
字符)和unix(也显示^M
字符)并返回dos.有没有人见过这个?
当你有Windows行结尾和Unix行的结尾时会发生这种情况.如果您有100行,其中99是\ r \n,其中一行是\n,您将看到99 ^ M个字符.修复是找到一行并替换它.或者在文件上运行dos2unix.您可以使用以下命令替换Windows行结尾:
:%s/\r\(\n\)/\1/g
你也可以运行:
:e ++ff=dos
要删除^M
:请参阅文件格式 - Vim Tips Wiki.
我通常使用以下内容来清理我的行结尾:
:g/^M$/s///
为了获得ctrl-M,我通常输入ctrl-Q,然后ctrl-M并将它放入.(在某些环境中它可能是ctrl-V然后ctrl-M.)我不知道为什么,但我发现比rq更容易记住.
不要忘记这样做:set ff=dos
,否则你最终还是会保存UNIX行结尾.
我知道这已经得到了解答,但我使用的技巧是
:%s/\r/\r/g
这将使用Windows CRLF替换unix回车.只是添加以防其他人有问题.
你可以忽略这些字符!
把它放到你的vimrc中
匹配Ignore /\r $//