2009-07-18 49 views
0

我在屏幕的剪贴板中有一个副本,其中包含字Masi。 我想用Bond有效地替换它,这样我就可以直接在屏幕的命令模式下编辑剪贴板。 我知道我可以将剪贴板保存到/ tmp并在Vim中运行替换,但我想学习屏幕。在屏幕的命令模式下运行Sed到屏幕的剪贴板

我跑,我在屏幕的剪贴板中我的数据

Ctrl-A : sed s/Masi/Bond/ | [Screen's clipboard]  /// I do not know how to refer to Screen's clipboard by a command other that C-A ] 

我得到

unknown command sed 

你怎么能在屏幕的命令模式下运行,以屏幕的剪贴板命令?

回答

2

我不认为屏幕有任何方式在粘贴缓冲区上运行命令。

做到这一点的一种方法是进行绑定以保存粘贴缓冲区,并在运行脚本修改缓冲区的屏幕中打开一个新窗口。然后进行另一次绑定以从磁盘重新加载修改后的缓冲区并进行粘贴(这可以通过正常的粘贴绑定进行绑定)。

添加这screenrc(改变路径):

bind -c screensed s eval "writebuf /pathtoscript/screensed.clipboard" "screen sh /pathtoscript/screensed.sh" 
bind -c screensed p eval "readbuf /pathtoscript/screensed.clipboard" "paste ." 
bind , command -c screensed 

某些地方有shell脚本:

#!/usr/bin/env sh 
echo "Enter sed script: " 
read sedcommand 
sed -i ${sedcommand} /pathtoscript/screensed.clipboard 
echo "(Enter to return)" 
read something 

“CTRL-A,S” 在屏幕将转储到剪贴板,并作出新用于输入sed命令的窗口。 “ctrl-a,p”将读取剪贴板并粘贴。脚本结尾处的停顿是为了显示sed可能给出的任何错误。

+0

你知道Screen在哪里存储它的clipbeard吗? – 2009-07-19 10:38:34