Macros in GNU screen?
I use the screen
command line program in Linux all the time, and I looked through the man page but didn't find the answer to this (although maybe I just missed it):
What I want to do is have a single command that splits the current region, tabs to the new region, and opens a new screen in it. I hoped there was some way to maybe go into command (colon) mode and do something like split; focus down; screen
but that doesn't work. Any ideas? Is it possible to maybe bind a series of commands to a single C-a
binding?
Have you tried:
register s ^aS^i^ac
bindkey ^a,, process s
From the depths of the screen manual:
register [-e encoding] key string
Save the specified string to the register key. The encoding of the string can be specified via the -e option. See also the "paste" command.
and:
process [key]
Stuff the contents of the specified register into screen's input queue. If no argument is given you are prompted for a register name. The text is parsed as if it had been typed in from the user's keyboard. This command can be used to bind multiple actions to a single key.
You could also arrange some files this way:
~/.myscreenmacro:
split
focus down
screen
~/.screenrc:
bind e source $HOME/.myscreenmacro
This is a little clearer than the other ways.
Screen's command eval
is handy for creating this kind of macros:
screen -X bind e eval split 'focus down' screen
Commands expecting arguments (like focus down
) need to be quoted (single or double).