在vim中将DOS行结尾转换为Linux行尾

如果我打开在Windows中创建的文件,则所有行都以^M结尾。
我如何一次删除这些字符?


dos2unix是一个命令行实用程序,它将执行此操作,或者:%s/^M//g如果您使用Ctrl-v Ctrl-m输入^ M,或者您可以:set ff=unix ,vim将执行此操作您。

有关'fileformat'设置的文档在这里,vim wiki有一个关于结束转换的综合页面。

或者,如果您将文件来回移动了很多,您可能不想转换它们,而是要执行以下操作:set ff=dos ,以便vim知道它是DOS文件并使用DOS约定用于行尾。


更改视图中的线条:

:e ++ff=dos
:e ++ff=mac
:e ++ff=unix

这也可以用作保存操作(:单独使用屏幕上看到的行结尾不会保存):

:w ++ff=dos
:w ++ff=mac
:w ++ff=unix

你可以从命令行使用它:

for file in $(ls *cpp)
do 
  vi +':w ++ff=unix' +':q' ${file}
done

我通常使用

:%s/r/r/g

这似乎有点奇怪,但因为vim匹配换行符的方式而起作用。 我也觉得更容易记住:)

链接地址: http://www.djcxy.com/p/22603.html

上一篇: Convert DOS line endings to Linux line endings in vim

下一篇: What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands in vim?