我正在寻找一个GUI文本编辑器,该编辑器能够执行多模式搜索并一次替换所有模式。如果源是文本文件,则可以使用,在命令行模式下完成sed
,但是文本来自剪贴板(没有其他方法)。
我需要:在文本编辑器中粘贴剪贴板中的文本(最多5至50个单词),单击“替换”按钮,并提供一组10个预定义的替换模式,然后将结果复制到剪贴板。此序列将执行约3000次...
我正在寻找一个GUI文本编辑器,该编辑器能够执行多模式搜索并一次替换所有模式。如果源是文本文件,则可以使用,在命令行模式下完成sed
,但是文本来自剪贴板(没有其他方法)。
我需要:在文本编辑器中粘贴剪贴板中的文本(最多5至50个单词),单击“替换”按钮,并提供一组10个预定义的替换模式,然后将结果复制到剪贴板。此序列将执行约3000次...
Answers:
...为什么不使用脚本?检查xclip
(sudo apt-get install xclip
)
xclip -o -selection clipboard
会将剪贴板发送到标准输出,并-i
可以替换剪贴板。所以
xclip -o -selection clipboard | sed "s/change this/to this/" | xclip -i -selection clipboard
将所做的更改应用于所选内容,现在您可以将其粘贴。
如果需要图形化的东西,可以将脚本嵌入yad:
#! /bin/bash
#
yad --title Choose --button One:1 --button Two:2 --button Three:3
choice=$?
case $choice in
1)
xclip -o -selection clipboard |
sed "s/one/uno/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
2)
xclip -o -selection clipboard |
sed "s/two/dos/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
3)
echo "executing 3 --- well, you got the idea"
;;
esac
这将显示一个对话框,如下所示:
请注意,脚本将同时修改剪贴板(粘贴)缓冲区并进行打印。要将其嵌入到编辑器中,例如vim
,您可以执行以下操作:
添加到您的.vimrc
:
nmap <F4> :r ! /path/to/the/script <CR>
例如运行gvim。
现在,您复制文本,转到编辑器,然后按F4。选择您要应用的更改。
文本将出现在编辑器中。如果可以,可以将其粘贴。除此以外
编辑文本,然后再次复制。(在中gvim
,您可以用鼠标选择文本,然后只需选择粘贴---或学习vim
命令,无论如何)。
可以肯定地对其进行优化(您可能可以轻松地定义另一个键来选择和粘贴修改后的文本,从而减少使用按键的次数)
我向您介绍Vim编辑器!(或Gvim用于图形实现)
# apt-get install gvim
有了这个文本编辑器,您几乎可以完成所有事情。它基于键盘快捷键,例如i
用于输入文本和dd
删除文本行,dw
删除单词,d2w
删除两个单词。
您的情况:要从剪贴板粘贴文本,请使用 "*p
要替换文本:s/foo/bar/g
,请在此处用bar替换foo。
|
,例如::%s/foo/bar/g | %s/brown/fox/g | %s/lorum/ipsun/g
。或一次将命令放在文件中一行,然后用于:source commandfile.vim
运行命令。或创建一个宏...