用 CopyQ 打造符合自己习惯的高效率好帮手

2024-09-04 10:55:15 3点赞 31收藏 0评论
用 CopyQ 打造符合自己习惯的高效率好帮手

CopyQ 是一个剪贴板管理工具,跨平台,有及其强大的扩展定制能力,没听说过的请自行搜索了解。

这里就只是简单展示下本人平时使用的场景,其他场景请自由发挥,充分利用好这个神器,帮助自己提高各种效率,特别是学习和工作。

快速添加选中内容到Anki

说明:

  • 笔记类型:@Basic 和 @Cloze 是自定义的,其实就是在默认的基础上新增了URL和Title字段,所以你的Anki里面没有对应的话就修改成自己有的,比如“Basic” 或者“基本”

  • 代码最后一行的 GlobalShortcut=ctrl+alt+a 就是触发的快捷键,选中文本然后按键盘 Ctrl+Alt+A 就可以呼出菜单

[Command] Name=QuickAnki Command=" copyq: ankiPost = function (args = {}) { const AnkiHost = 'http://127.0.0.1:8765' const AnkiVersion = 6 const ankiRes = networkPost(AnkiHost, JSON.stringify({ version: AnkiVersion, action: args.action, params: args.params })) if (ankiRes.error) { throw ankiRes } const data = JSON.parse(str(ankiRes.data)) if (data.error) { throw data.error } } ankiPostWithSource = function (args = {}) { if (args.params && args.params.note && args.params.note.fields) { args.params.note.fields.Url = clipboard('Chromium internal source URL') + '' args.params.note.fields.Title = currentWindowTitle() + '' } ankiPost(args) } showQuickMenus = function () { const menus = [ { 'text/plain': '@Basic-Front' }, { 'text/plain': '@Basic-Back' }, { 'text/plain': '@Cloze-Text' }, { 'text/plain': '@Basic-Front-HTML' }, { 'text/plain': '@Basic-Back-HTML' }, { 'text/plain': '@Cloze-Text-HTML' }, { 'text/plain': '@Basic-Front-CODE' }, { 'text/plain': '@Basic-Back-CODE' }, { 'text/plain': '@Cloze-Text-CODE' } ] var selectedIndex = menuItems(menus) const menu = menus[selectedIndex] if (!menu) { abort() } const label = menu['text/plain'] const [modelName, field, mime] = label.split('-') const mimeType = mime === 'HTML' ? 'text/html' : 'text/plain' let content = clipboard(mimeType) + '' if (mime === 'CODE') { content = `

${escapeHtml(clipboard())}


` } ankiPostWithSource({ action: 'guiAddCards', params: { note: { deckName: '系统默认', modelName, fields: { [field]: content } } } }) } copy() showQuickMenus()" IsGlobalShortcut=true Icon= GlobalShortcut=ctrl+alt+a

批量添加英文句子到Anki

说明:

  • @YouDao 是自定义的笔记类型,主要是放原文的Word,放解释的Exp,放音标的Phone,还有放音频的Audio,其他的都只是附加信息

  • 这个命令做的事情就是解析每一行文本,用有道查询解释和音标,然后用Google翻译的TTS生成朗读音频,最后生成一条Anki笔记,笔记里面有3个卡片模板,分别用来练习阅读、写作、听力,而口语能力在刷这3张卡片的时候都可以跟读练习,所以这样就够我用了

代码太长就不贴上来占篇幅了,有需要的就告知。另外如有其他个性化的需求,愿意支持的朋友请到某宝搜店铺(码农爱学习),可以提供定制服务,CopyQ和Anki都可以。

快捷查询

说明:

  • 查词和翻译只是个人需求,Linux上没有开源好用的取词软件,我这样做一是减少安装一个常驻程序,二是使用习惯可以跨平台,仅供参考。

  • 不要局限于演示的案例,任何支持通过URL传参的网站都可以,搜索引擎、AI等等,随意在menus里面添加修改即可。

[Command] Name=QuickQuery Command=" copyq: showQuickMenus = function () { const menus = [ { 'text/plain': 'Query-Youdao', url: 'https://www.youdao.com/result?word=%1&lang=en' }, { 'text/plain': 'Query-Deepl', url: 'https://www.deepl.com/en/translator#en/zh/%1' }, { 'text/plain': 'Query-Google', url: 'https://translate.google.com/?sl=en&tl=zh-CN&text=%1&op=translate' }, ] var selectedIndex = menuItems(menus) const menu = menus[selectedIndex] if (menu) { open(menu.url.replace('%1', encodeURIComponent(clipboard()))) } } copy() showQuickMenus()" IsGlobalShortcut=true Icon= GlobalShortcut=ctrl+alt+q

一键摘录做笔记

说明:

  • 本质上就是写文件,在这个基础上能尝试的玩法也是无穷无尽的了

  • 记得把文件路径修改成你自己的

[Command] Name=Obsidian Command=" copyq: obsidianInbox = function () { const html = str(clipboard('text/html')).replace(/^]*>/, '') const dataToWrite = `${html || str(clipboard())} --- ${currentWindowTitle() + ''} ${clipboard('Chromium internal source URL') + ''}` var f = new File(`D:obsidianNotes/${Date.now()}.md`) if (!f.openWriteOnly() || f.write(dataToWrite) == -1) { throw 'Failed to save the file: ' + f.errorString() } f.close() } copy() obsidianInbox()" IsGlobalShortcut=true Icon= GlobalShortcut=ctrl+alt+s


未来探索到其他新奇高效的玩法再回来补充更新吧,水平有限,如有错漏欢迎批评指正。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

码农爱学习

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
31
扫一下,分享更方便,购买更轻松