GNU 屏幕中的宏?

GNU 屏幕中的宏?

screen一直使用 Linux 中的命令行程序,我查看了手册页但没有找到这个问题的答案(虽然也许我只是错过了它):

我想要做的是使用单个命令来拆分当前区域、切换到新区域并在其中打开一个新屏幕。我希望有某种方法可以进入命令(冒号)模式并执行类似操作,split; focus down; screen但那行不通。有什么想法吗?是否可以将一系列命令绑定到单个C-a绑定?

答案1

你有没有尝试过:

register s ^aS^i^ac
bindkey ^a,, process s

来自屏幕手册的深处:

登记[-e 编码] 密钥字符串

将指定的字符串保存到注册键。字符串的编码可以通过 -e 选项指定。另请参阅“粘贴”命令。

和:

过程[钥匙]

将指定寄存器的内容填充到屏幕的输入队列中。如果没有给出参数,系统会提示您输入寄存器名称。文本被解析为好像它是从用户的键盘输入的。此命令可用于将多个操作绑定到单个键

答案2

您还可以通过以下方式安排一些文件:

〜/ .myscreenmacro

split
focus down
screen

~/.screenrc

bind e source $HOME/.myscreenmacro

这比其他方法更清晰一些。

答案3

Screen 的命令eval对于创建这种类型的宏很方便:

screen -X bind e eval split 'focus down' screen

需要参数的命令(如focus down)需要用引号引起来(单引号或双引号)。

答案4

要使用一个命令创建拆分、更改焦点和创建新窗口,请输入以下命令~/.screenrc

bind s eval "split" "focus down" "screen"

并使用control-a s

eval使用手册中描述

相关内容