复制粘贴时自动修改剪贴板内容(正则表达式模式替换)

复制粘贴时自动修改剪贴板内容(正则表达式模式替换)

我经常复制小段单独的文本并粘贴到其他地方。之后,我总是需要以明确的方式编辑粘贴的结果,这可以通过类似于 eg 命令的正则表达式替换来sed描述s/PATTERN/REPLACEMENT/

我想通过让脚本在复制和粘贴之间自动处理剪贴板缓冲区的内容并通过应用配置的正则表达式替换来修改它,从而自动执行此任务的编辑部分。

脚本启动时,用户应输入实际的正则表达式模式和替换,并且还应以某种方式表明它正在运行,例如,通过打开一个小对话窗口并在每次进行修改时发送桌面通知。

答案1

介绍

问题发布的方式不仅需要一个简单的脚本,还需要一个用于启用/禁用脚本的 GUI 界面。我发现通过 Ubuntu 顶部面板可访问的应用程序指示器更容易实现。此答案正是为此而提出的解决方案。

clipboard-autoedit-indicator我专门为这个问题编写的 允许基于正则表达式 (选择sed或 pythonre样式 ) 自动编辑剪贴板内容。它使用 Gtk 的剪贴板模块和最小依赖项,因此无需安装其他工具,例如xclipxsel

安装

在终端中运行以下命令:

sudo add-apt-repository ppa:1047481448-2/sergkolo
sudo apt-get update
sudo apt-get install clipboard-autoedit-indicator

用法

Clipboard Autoedit可以通过在 Unity Dash 中键入或从命令行调用来启动指示器/usr/bin/clipboard-autoedit-indicator。当启用/禁用剪贴板的动态编辑时,会显示两个指示器图标(彩色和灰色剪贴板图标)。当发生编辑时,会向用户发送通知。

在此处输入图片描述

“设置正则表达式模式”菜单项调用zenity表单对话框。当用户编辑正则表达式规则时,它会被记住并存储在~/.clipboard-autoedit-config.json文件中。当用户点击按钮时,动态编辑将自动启用OK,但用户可以通过“启用替换”检查菜单项将其禁用。正则表达式类型默认为 python 的re模块。

在此处输入图片描述

源代码

源代码可在 MIT 许可下获取GitHub。将会有进一步的开发和更新的版本,如果您有功能请求和/或错误报告,请在 GitHub 上提交。

答案2

这很简单。软件包中的xclip通知位应该适合您的需求。您可能需要先安装软件包:notify-sendlibnotify-bin

sudo apt-get install xclip libnotify-bin

将以下内容放入脚本并使其可以通过键绑定运行:

#!/bin/bash

xclip -o | sed 's/pat/repl/' | xclip -i
notify-send "Clipboard" "Replacement done"

相关内容