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


当前回答

发件人:文件格式

[Esc]:%s/\r$//

其他回答

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

有关于文件格式设置的文档,Vimwiki有一个关于行尾转换的全面页面。

或者,如果你经常来回移动文件,你可能不想转换它们,而是要转换它们:set ff=dos,这样Vim就会知道它是一个dos文件,并使用dos约定来换行。

可以使用以下命令::%s/^V^M//g其中“^”表示使用CTRL键。

我知道我在什么地方见过这个。以下是FreeBSD登录提示:

是否需要从DOS文件中删除所有^M字符?尝试

tr -d \\r < dosfile > newfile
    -- Originally by Dru <genesis@istar.ca>

如果您在Windows中的Notepad或Notepad++中创建文件,将其带到Linux,然后用Vim打开,您将在每行末尾看到^M。为了去除这一点,

在Linux终端上,键入

dos2unix filename.ext

这将产生所需的魔力。

来自Wikia:

%s/\r\+$//g

这将查找所有回车符(一个或多个重复),直到行尾并删除,因此仅\n将保留在EOL。