复制粘贴时自动修改剪贴板内容(正则表达式模式替换)
我经常复制小的单独文本片段并将它们粘贴到其他地方。 之后我总是需要以明确定义的方式编辑粘贴的结果,这可以通过类似于例如sed
的s/PATTERN/REPLACEMENT/
命令的正则表达式替换来描述。
我想通过让脚本在复制和粘贴之间的某个时间自动处理剪贴板缓冲区的内容并通过应用配置的正则表达式替换来修改它来自动执行此任务的编辑部分。
当脚本启动时,用户应输入实际的正则表达式模式和替换,并且它还应以某种方式指示它正在运行,例如通过打开一个小对话窗口并在每次修改时发送桌面通知。
介绍
问题的发布方式不仅需要一个简单的脚本,还需要一个用于启用/禁用脚本的GUI界面。 我发现通过Ubuntu顶级面板可以访问的应用程序指示器更容易实现。 这个答案恰恰是一个解决方案。
我专门为这个问题编写的clipboard-autoedit-indicator
允许根据正则表达式自动编辑剪贴板内容(选择sed
或python的re
样式)。 它使用Gtk的剪贴板模块和最小的依赖关系,因此无需安装其他工具,如xclip
或xsel
。
安装
在终端中运行以下命令:
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"