在 `script` 命令给出一个文件后,我在 vim 中使用 `:set isprint=1-225` 删除不可打印的字符,但无法以这种格式保存文件

在 `script` 命令给出一个文件后,我在 vim 中使用 `:set isprint=1-225` 删除不可打印的字符,但无法以这种格式保存文件

当我在 vim 中执行此命令时,:set isprint=1-225所有不可打印的字符都会被压缩/删除。现在我该如何保存此文件或转换此文件的格式,以便默认情况下此文件以此格式打开。或者,如果我将其上传到 github,不可打印的字符会被压缩吗?

我的问题在 Stack Overflow 上被否决,因为与编程或开发无关,所以我想我应该在这里添加一些细节。我无法在标题中写完所有内容,但基本上我可以用这行总结我的补充:我正在使用命令script来记录我的会话,而script命令给出了一个包含大量“不可打印”字符的文件,我可以使用 vim 压缩不可打印字符,:set isprint=1-225我该如何以这种格式保存文件?

我知道并且尝试过的其他选项是编写一个 perl 函数来删除控制字符(最佳替代,尽管我必须检查是否已删除所有不可打印字符),以及来自 bash 提示符的dos2unix&col -bp命令组合。

看起来很有希望,但在我尝试之前,我看到在 Ubuntu 的下载下它显示已过期 - 我还应该尝试使用该.tar.bz2文件进行安装吗?

附言在这篇文章中 Kyle Barbour 的回答让我思考是否有办法使用tr实用程序来执行set: isprint=1-225vim 命令行所做的事情。

答案1

设置该'isprint'选项不会修改文件,它只会影响 Vim 如何显示文件。不过,你可以在设置该选项后运行替代命令:

:%s/[^[:print:]]//g

然后写入文件。

答案2

[已解决] 由于我正在使用 tmux,因此为了我的目的,我已决定使用 tmux 命令capture-pane -S <# off lines>

因此,当我使用命令将会话中的 I/O 捕获script到 xyz.txt 文件中后,我可以从终端提示符发出cat xyz.txt命令以查看不包含不可打印字符的文件。在 tmux 中使用复制模式检查 xyz.txt 文件中有多少行。最后从 tmux 命令缓冲区发出命令capther-pane -S <# of lines>,然后使用 将其保存到文件 zyx.txt 中:save-buffer zyx.txt

谢谢大家。

相关内容