如何让 Vim 将 CR 字符解释为终端中的字符(覆盖当前行)

如何让 Vim 将 CR 字符解释为终端中的字符(覆盖当前行)

一些背景信息:我使用进度条(特别是全面质量管理)来监视在通过 ssh 访问的远程计算机上执行的脚本的进度。只要我能够访问运行脚本的屏幕会话,一切就都很好。

有时我无法使用屏幕(具体来说,在使用泥浆),所以我最终将脚本的输出重定向到一个文件。在这种情况下我找到了三个选择:

  1. tail -f file:进度条显示正确,并随着文件更新而更新,但只显示最后 n 行,我无法交互式搜索。
  2. less +F -r file:进度条显示正确,但不会随着文件更改而更新(至少在写入新行之前不会更新)。
  3. vim file:这将是我的首选方法,但进度条混乱,CR 字符显示为^M。我猜这是预料之中的,我可以执行:%s/\r/\r/g以查看多行“展开”的进度条,这比默认情况要好,但不是很好。

有没有办法让 Vim 将 CR 解释为“覆盖当前行”,就像在终端中发生的那样?如果这是不可能的,我认为可以通过一个在我喜欢的时候手动执行的函数来完成:虽然我不知道 vimscript,所以帮助会很棒。

[编辑]我尝试了这里建议的一些方法将 tty 终端输出转换为纯文本, 和这里我可以使用 unix utils 以编程方式将 ANSI 控制代码“烧入”文件吗?,正如评论中所建议的,但我没有运气。

相关内容