2009-07-18 100 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