在GNU屏幕中,如何从stdin读取并保存到寄存器中?

在GNU屏幕中,如何从stdin读取并保存到寄存器中?

我正在使用 GNU 屏幕,我想将来自标准输入的输入保存到寄存器中以便稍后慢速粘贴。我尝试使用临时文件(我可以随后将其读入寄存器readreg)并使用cat

:eval "exec | sh -c 'cat >/tmp/screentempfile'"

但是,如果我按 发送CTRLDEOF 到cat,它不会到达。

答案1

那应该是:

:exec ... sh -c 'cat > ~/.screen-paste'

您需要cat来自 的stdin screen,因此第一个..该命令不应该输出任何内容,因此另外两个 fd 并不重要,尽管它们screen也可以访问,因此另外两个.s.

答案2

为了完整起见,这是一个从标准输入读取并将输入保存到寄存器中的工作命令:

:exec ... sh -c 'cat >"$HOME/.screen-stdin.tmp" && screen -S "$STY" -X readreg p "$HOME/.screen-stdin.tmp"'

相关内容