我正在使用 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"'