vim - 使用 vim 处理文本文件中的\r\n ^M ​​^@

标签 vim newline carriage-return

当我将 excel 文件中的数据行保存为制表符分隔的 .txt 文件,然后在 VIM 中打开这些文件时,我看到曾经是 excel 中的多行文件现在是 VIM 中的单行文件。

可以使用一些替换命令在 VIM 中分隔“行”:

%s/^M/\r\n/g

在此之后,“行”现在由 ^@ 分隔。 我使用另一个替换命令处理它:

%s/^@//g

我的问题是:

  1. 为什么我的多行 txt excel 文件在 VI 中打开为单行?
  2. 什么是^@
  3. 是否有更好的方法来“修复”我的 txt 文件?

最佳答案

您通常可以通过运行以下命令来解决此类问题:

dos2unix FILE_NAME

这将重新格式化文件的换行符(即它会修改您的文件)。

(这个命令在 Mac OS X 上不存在)


如果你没有 dos2unix(例如你在 Mac 上),你可以只使用 sed:

sed 's/^M$//' 输入.txt > 输出.txt

如果您想避免通过就地执行替换来创建新文件,您也可以使用sed -i

您可以通过输入 CTRLV 然后输入 CTRLM^M >

More reading here

关于vim - 使用 vim 处理文本文件中的\r\n ^M ​​^@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13727248/

相关文章:

vim - 如何让 vim 正确呈现阿拉伯文本?

xml - 在 Perl 中使用 XML::LibXML 更改 XML 文件:换行符是 Unix,不是 Windows

java - 使用 AbstractTableModel for JTable 时换行符 (\n) 不起作用

regex - 如何在正则表达式中只查找换行符?

c++ - vim 全能与 vim 智能感知

plugins - 在 Vim 中启动后如何手动加载 ftplugin?

c++ - 如何在多行中使用回车?

git - 在我的 emacs 文件中不断出现的这些 ^M 是什么?

python - Bash 变量包含 '\r' - 回车导致我的脚本出现问题

vim - 检索用于启动当前 vim session 的 `.vimrc` 内容