1

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

我在屏幕的剪贴板中有我的数据时运行

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

如何在 Screen 的命令模式下向 Screen 的剪贴板运行命令?

4

1 回答 1

2

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

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

将此添加到 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 可能给出的任何错误。

于 2009-07-19T02:54:10.700 回答