Vim在每一行结束时显示^M。
我如何用在Vim中打开的文件中的普通换行符替换它?
Vim在每一行结束时显示^M。
我如何用在Vim中打开的文件中的普通换行符替换它?
当前回答
我用sed做了这个:
Sed -i -e 's/\r/\n/g'文件名
其他回答
^M是由Ctrl+V和M检索的
s/^M//g
我花了一个下午的时间与\n ctrl-v 012作斗争(两者都为我提供null)。&费力通过这条线索,直到我到达metagrapher的。
\r对我来说很好!
/),/s/),/)\r/g
变成这样:
黑名单-extra:i386 (0.4.1, 0.4.1+nmu1), libmount1:i386 (2.20.1-5.1, 2.20.1-5.2), libblkid1:i386 (2.20.1-5.1, 2.20.1-5.2), libapt-pkg4.12:i386 (0.9.7.4, 0.9.7.5), nmap:i386 (6.00-0.1, 6.00-0.2), libsane-common:i386 (1.0.22-7.3,
变成这样:
26 libwv-1.2-4:i386 (1.2.9-3, automatic) openjdk-6-jre-headless:i386 (6b24-1.11.4-3, automatic) 28 jed:i386 (0.99.19-2.1)
魔法。我深深地感激
这招对我很管用:
设置文件格式为unix (\n行结束) 保存文件
在vim中:
:set ff=unix
:w
这个问题有很多其他的答案,但仍然,下面的最适合我,因为我需要一个命令行解决方案:
vim -u NONE -c 'e ++ff=dos' -c 'w ++ff=unix' -c q myfile
解释:
不加载任何.vimrc文件,打开myfile 执行:e++ ff=dos命令,在dos行结束时强制重新加载整个文件。 执行命令w++ ff=unix,使用unix行结束符写入文件 vim辞职
在Solaris:
: %。s /; rolelabel CTRL + V > 50%的CTRL + M / / g
那就是:
: % s / M ^ / / g
这意味着:
% =所有行, S =代入, ^M =你想要替换的东西 // =替换为空 G =全局(不仅是第一次出现)