jwzumwalt Asked: 2022-03-24 21:41:35 +0800 CST2022-03-24 21:41:35 +0800 CST 2022-03-24 21:41:35 +0800 CST 文本(从文件)到正在运行的程序 772 我手上有退行性骨病,我想制作看起来像是在 Sublime 或 Kate (KDE) 等文本编辑器中输入的 YouTube 视频。 如何让文本编辑器在运行时通过 stdin 接收输入文本文件(键入效果) - 可能使用套接字、管道、进程 ID 等? 谢谢 editors stdin 1 个回答 Voted Best Answer Stéphane Chazelas 2022-03-24T22:02:34+08:002022-03-24T22:02:34+08:00 使用基于终端的文本编辑器,例如 , vi, jed(joe或//vim尽管它们也有 GUI 版本),您可以使用诸如, 's或模拟输入(或重播捕获的会话)之类的东西。emacsxemacsexpectzshzptyscreentmuxscriptreplayscript 对于 X11 文本编辑器(尽管也适用于在 X11 终端仿真器中运行的终端编辑器),您可以使用xdotoolor xte(from xautomation) 来模拟按键和释放事件。 xdotool有keydown,keyup子命令将相应的 X11 事件发送到窗口,或key按顺序组合两者,并type发送按键+释放事件的序列以生成一些文本。 xdotool type --delay 300 $'test\n' 模拟t, e, s, t,Enter按键按下+释放,它们之间的间隔为 300 毫秒。 使用xte,您可以通过以下方式实现相同的目的: xte << 'EOF' key t usleep 300000 key e usleep 300000 key s usleep 300000 key t usleep 300000 key Return EOF 有关详细信息,请参见各自的手册页。
使用基于终端的文本编辑器,例如 ,
vi
,jed
(joe
或//vim
尽管它们也有 GUI 版本),您可以使用诸如, 's或模拟输入(或重播捕获的会话)之类的东西。emacs
xemacs
expect
zsh
zpty
screen
tmux
scriptreplay
script
对于 X11 文本编辑器(尽管也适用于在 X11 终端仿真器中运行的终端编辑器),您可以使用
xdotool
orxte
(fromxautomation
) 来模拟按键和释放事件。xdotool
有keydown
,keyup
子命令将相应的 X11 事件发送到窗口,或key
按顺序组合两者,并type
发送按键+释放事件的序列以生成一些文本。模拟t, e, s, t,Enter按键按下+释放,它们之间的间隔为 300 毫秒。
使用
xte
,您可以通过以下方式实现相同的目的:有关详细信息,请参见各自的手册页。