alw*_*ask 8 text-editor software-recommendation
我正在寻找一个 GUI 文本编辑器,它能够进行多模式搜索并一次性全部替换。如果源是文本文件,则可以在命令行模式下使用 完成sed
,但文本来自剪贴板(没有其他可能)。
我需要:将剪贴板中的文本(最多 5-50 个字)粘贴到文本编辑器中,使用一组 10 个预定义的替换模式点击“替换”按钮,然后将结果复制到剪贴板。这个序列将完成大约 3000 次......
Rma*_*ano 13
...为什么不使用脚本?检查xclip
( sudo apt-get install xclip
)
xclip -o -selection clipboard
Run Code Online (Sandbox Code Playgroud)
将剪贴板发送到标准输出,-i
您可以更换剪贴板。所以
xclip -o -selection clipboard | sed "s/change this/to this/" | xclip -i -selection clipboard
Run Code Online (Sandbox Code Playgroud)
将更改应用于选择,现在您可以粘贴它。
如果你想要一个图形化的东西,你可以用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
Run Code Online (Sandbox Code Playgroud)
这将显示一个对话框,如下所示:
请注意,脚本将修改剪贴板(粘贴)缓冲区并打印它。例如vim
,要将其嵌入到编辑器中,您可以执行以下操作:
添加到您的.vimrc
:
nmap <F4> :r ! /path/to/the/script <CR>
Run Code Online (Sandbox Code Playgroud)运行例如 gvim。
现在你复制文本,进入编辑器,按 F4。选择要应用的更改。
文本将出现在编辑器中。如果没问题,你可以粘贴它。除此以外
编辑文本并再次复制。(在 中gvim
,您可以用鼠标选择文本,然后只需选择粘贴 --- 或学习vim
命令,等等)。
它肯定可以优化(您可能可以轻松定义另一个键来选择和粘贴修改后的文本,以便您使用更少的按键)
您可以在命令行上执行所有这些操作,仍然使用类似xsel
或xclip
检索当前剪贴板,然后将结果填回其中。这是一个小例子,显示了sed
用于进行多次替换。
echo -n abc | xsel -bi # write to clipboard
xsel -bo | sed 's/abc/def/;s/def/123/' | xsel -bi # process it
echo $(xsel -bo) # output it for testing
Run Code Online (Sandbox Code Playgroud)
退货 123