2009-07-18 9 views
0

私は画面のクリップボードにMasiという文字を含むコピーを持っています。 私はBondを有効に置き換えて、Screenのコマンドモードで直接クリップボードを編集したいと思っています。 私はクリップボードを/ tmpに保存してVimでそこの置換を実行できると知っていますが、私はScreenを学びたいと思っています。私はスクリーンのクリップボードスクリーンのコマンドモードで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

私は画面にはペーストバッファでコマンドを実行する方法がないと思う。

これを行う1つの方法は、貼り付けバッファを保存するためのバインドを作成し、スクリプトを実行してバッファを変更する新しいウィンドウを開くことです。次に、別のバインドを作成して、変更されたバッファをディスクから再ロードしてペーストします(これは通常のペーストバインドにバインドできます)。

(パスの変更)の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 

どこかのシェルスクリプトを作成します。

#!/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でクリップビートが保存されている場所はわかりますか? –

+0

私は、画面の貼り付けバッファは、 "writebuf"コマンドが完了するまでメモリに保持されると思います。コピー後に画面に自動的にバッファを書き込ませる方法はわかりません。私は、あなたがソースコードを調べたいと思えば、そのような自動書き込みはかなりシンプルになると思います。 –

+1

クイック検索でこれが見つかりました:http://snarfed.org/space/synchronizing%20GNU%20screen%27s%20paste%20buffer%20and%20the%20X%20selection、明らかに "stuff" 'はコピーを行いますマークモード(奇数)。 これをあなたのscreenrcに置くと、コピー時に画面に自動的にファイルが書き込まれます:bindkey -m> eval "stuff" '"writebuf –

関連する問題