一直懒得写这个,一个挺纠结的功能。正好有人让我测试Archlinux下octopress的语法高亮,所以干脆就写了。
这东西是用来在screen里面开一个split的窗口,用以显示当前命令的结果的。比如说想开个man,对照着看,或者说tail -f
一个log文件的时候,应该比较合适。开了新窗之后,焦点保留在原来的窗口,可以用c-a c-i
跳转到新窗口,这时候按下任意键新的分割窗口就关掉。这是从screen的源代码包里面看到的一过小tips。
似乎很不错的想法。但是,纠结点在于,如果像我这样,本来screen就是当作terminal mutiplexer来用, 那你的所有的窗口都会分割成上下两个!查了下文档,没有找到解决办法。搞不懂irssi的某些用screen来 显示在线人数列表的插件是怎么做到的,居然没有这样的问题。
还是把代码贴一下吧。
function run-command-in-split-screen() {
screen -X eval \
"focus bottom" \
split \
"focus bottom" \
"screen $HOME/bin/screen_run $BUFFER" \
"focus top"
zle kill-buffer
}
zle -N run-command-in-split-screen
bindkey "\e\r" run-command-in-split-screen