我正在尝试执行以下操作:
- 开始新的屏幕会话
- 在其上启动 vim。
- 向其提供命令。
- 检查输出
作为测试 vim 的一种手段。我可以这样做,但问题是我希望它对用户不透明。
换句话说,用户运行我的测试脚本,然后无需向他们展示该脚本创建一个新屏幕,在其上运行 vim,然后我们开始测试。
这可能吗?我可以在分离的屏幕上运行 vim 并让它按预期运行吗?
(注意:我没有依赖屏幕、tmux 或其他多路复用器,或者实际上任何将受控输入传输到不可见的 vim 实例的方法都可以。)
我已经手动完成了这个操作(将我的终端拆分开,-X stuff
在一个屏幕中运行命令,在另一个屏幕中运行 vim),但每次我尝试编写脚本来执行此操作时,它都不起作用。我很难弄清楚为什么它不起作用,因为我无法准确地附着在屏幕上观看......
答案1
我不太明白你想要做什么,因为你解释的是你想象的手段而不是你的目标。
如果使用正确的选项进行编译,则可以使用此命令以“客户端服务器模式”启动 vim:
$ vim --servername HIDDEN
并使用以下命令发送命令:
$ vim --servername HIDDEN --remote-send 'ihello<CR>'
或者使用以下命令编辑文件:
$ vim --servername HIDDEN --remote filename
看:h clientserver
。