将 Shift+F7 的默认路径更改为 PWD?

将 Shift+F7 的默认路径更改为 PWD?

我的目的是将终端输出的许多页面复制到一个文件中,以便进行日志记录。复制屏幕内容对我来说不太好用。它需要记住太多键,即使我记得它,它捕获整个内容的速度仍然比Shift+慢。F7

但是,Shift+F7使用我的环境打开一个名为“PRINTSCREEN*”的新窗口选项卡$EDITOR,如果我选择保存它(使用 vim 或 emacs),它将保存为类似的内容/tmp/shm/byobu-username-RanDomNameDir/

我必须导航到我的$PWD才能保存文件。路径大多数时候都很深很长。有没有办法可以更改,以便将 byobu 的临时缓冲区PRINTSCREEN默认为$PWD

更新:

为什么不直接使用重定向?

许多人都建议这样做。答案是,我知道重定向。但这不是使用它的情况。在编写工作脚本并“正确”地将输出重定向到文件之前,我确实与终端进行了交互以探索各种方向。我的问题是关于调整 byobu 的Shift+F7命令的配置。它的唯一目的是服务于未发生屏幕重定向的用例。所以请不要谈论屏幕重定向。

答案1

使用 Linux 嵌入式script实用程序。例如,要捕获从终端到capture.log当前目录中文件的所有内容(使用 获取pwd),请执行以下操作:

script capture.log

要停止捕获,只需输入exit或按。有关及其选项的CTRL+D更多信息:script

man script

评论。脚本实用程序输出文件包含原始控制字符,因此要读取它使用less-r选项-R,即

less -rR capture.log

要清除输出文件中的原始控制字符,请使用以下命令:

cat capture.log | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > capture-clean.log

最后一个命令从capture.log文件中删除原始控制字符并创建纯文本文件capture-clean.log

另外阅读如何清理 Linux 'script' 命令的输出

答案2

经过一些测试,我决定最好从根源上进行修复:不是byobu,而是tmux。社区里一些好心的开发人员tmux制作了一个补丁。现在一切都很完美:https://github.com/tmux/tmux/issues/1400

相关内容