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

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

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

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

介绍

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

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

安装

在终端中运行以下命令:

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

用法

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

在此处输入图像描述

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

在此处输入图像描述

源代码

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

使用xclip这很简单。 对于来自libnotify-bin包的notifycation位notify-send应该适合您的需要。 您可能需要先安装软件包:

 sudo apt-get install xclip libnotify-bin 

将以下内容放入脚本中,并使用键绑定使其可运行:

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