在Vim的每一行结尾
当我使用vim和其他编辑器编辑源代码文件时,有时候会在每行的末尾显示这些^ M字符。 我认为这与在Windows中编辑文件然后在Linux中有关。 我怎样才能自动删除所有这些?
作为命令,键入
:%s/^M$//
(要获得^ M,请按^ V ^ M,其中^是大多数键盘上的CTRL)
去掉DOS行尾的一个简单方法是使用ff
选项:
:set ff=unix :wq
现在你的文件又回到了老式的Unix方式。
如果你想添加 DOS行结束符(保持打印机快乐,或者与没有好工具的Windows朋友一起传输文件),你可以很容易地走相反的方向:
:set ff=dos :wq
你可以这样做:
:set fileformats=dos
它会隐藏^M
,而不会触摸文件。
有一个名为dos2unix的程序,应该为你删除这些程序。 Windows使用不同的行尾字符,这就是为什么会发生这种情况。
这对我来说是一个文件,只有一行:
首先find所有匹配
:%s/^M//
(要获得^M
,请按^ V ^ M,其中^是大多数键盘上的Ctrl )
然后用换行符replace
:%s//\r/g
组合命令是:
:%s/^M/\r/g
我倾向于在重新打开之前通过fromdos
运行折磨的文件。 fromdos
是tofrodos软件包的一部分。
问题的根源可能是通过FTP传输。 将这些文件从一个盒子传送到另一个盒子时,请确保使用ASCII传输。 使用命令“ASC”。
" put this in your ~/.vimrc file and :source ~/.vimrc " then you can do: Dos2Unix " dos2unix ^M fun! Dos2unixFunction() let _s=@/ let l = line(".") let c = col(".") try set ff=unix w! "%s/\%x0d$//e catch /E32:/ echo "Sorry, first save the file." endtry let @/=_s call cursor(l, c) endfun com! Dos2Unix keepjumps call Dos2unixFunction()
mcedit:shift + f2,设置unix格式(LF),好的