当我在 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-225
vim 命令行所做的事情。
答案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
。
谢谢大家。