背景
有一些从终端交互中获得的转录文件,使用传统的Unix命令 "script" 获取。
这些转录包含大量控制字符(如编辑Shell命令时的退格符)和许多颜色代码序列,作为运行各种命令的结果。偶尔还会运行像 "emacs -nw" 或 "aptitude" 这样的全屏终端(ncurses-based)应用程序。
在程序运行时,TERM环境变量被设置为 "xterm"。
需求 1:读取(基本解决)
我需要再次阅读这些文件,并有时复制粘贴一些小部分。
问题是:虽然偶尔出现的一些颜色变化不太成问题,但它们的实际密度使输出几乎无法阅读。更糟糕的是,编辑后的命令行(带有光标跳转和编辑单词)完全无法阅读。
"好" 的解决方案
通过例如 "less -r" 浏览文件。在相同的终端设置下向前翻页可以重现各种颜色和字符风格。
但许多其他功能更或多或少地出现故障,例如向后搜索会产生混乱的终端输出,通常需要按下 "Ctrl-L" 来清理。
需求 2:编辑
我喜欢的编辑器是emacs。有些人在emacs中运行shell时遇到了类似的情况,例如 Something wrong with Emacs shell。
这里不是同样的情况。区别的例子如下:这里我们不必运行一个实际的shell,但我们需要像在通常的编辑中一样自由移动光标。
在这里进行编辑意味着轻松地在编辑器中打开这样一个转录文件,然后:
- 在整个编辑过程中,始终看到终端代码传递的字符更改(颜色、属性)
- (可选)一些相邻的字符在终端网格上,但在文件中由一些控制字符分隔的字符将具有有关此的视觉提示
- 能够插入一些文本,
- 删除部分,
- 使用所有编辑器功能,如搜索/替换等,
- 复制和粘贴到和从文件(包括到外部程序,它们只会收到纯文本)中,
- 在我最疯狂的梦想中,一种"展平"操作,例如选择带有经过大量编辑的命令行序列,并将其替换为一系列简单字符,就像它是一次性输入的那样。上述提到的"视觉提示"将消失。
script
输出通常没有这个。IPBT可能是最接近编辑器的起点。 - sendmoreinfo