vi 替换 vim 的不同行为

vi substitution different behaviour from vim

我正在尝试用经典 vi 中的单词替换换行符(在 arch linux 中)。替换命令如下所示:

:%s/\n/word/g

在 vim 中确实有效。我正在处理的文件是从 Calc 复制/粘贴的结果(来自数据仓库程序的 csv)。

VIM 输出是行被替换(导致非常长的行,这是我必须提供给另一个程序的命令)。 我在 Windows 和 Linux 上 VIM 测试了这个。

Vi 在同一个文件上的输出是:"Substitute pattern match failed"

我使用的vi版本是Arch中的默认版本:Version 4.0 (gritter) 12/25/06

这是经典的vi。

我在 VIM 中不是做不到,但为什么这在 vi 中不起作用?有没有办法使这项工作?我试图寻找解决方案,但没有找到任何有用的东西。

viex regular-expressions, which are mostly POSIX Basic Regular Expressions, and do not require C-style escape sequences. The join commend from ex代替,用!防止修改(一般是调整空格)。

:%j!

替换命令可用于模拟替换换行符。

:2,$s/^/start
:1,$-s/$/end
:%j!