macOS里的自带词典使用起来非常的方便,这主要体现在两方面:
1.三指轻按触摸板即可呼出查询,且释义简要全面
2.在几乎任何地方(safari浏览器、PDF文件内[主要是浏览国外期刊或书籍时]、各种文本编辑器[如typora])都可以使用这一功能
这两个主要的特性加上系统原生功能带来的无缝衔接的流畅体验,使得macOS词典成为了几乎可以取代macOS系统上其他第三方词典的优秀查词工具,借用macOS上提供的工作流制作器Automator,可以方便地实现其他的增强功能,其中最为迫切的一个需求就是实现生词的管理,即生词本的实现。

相较于第三方查词软件提供的生词本功能,这一功能具有更高的自由度的操作上的便捷性,具体实现方式及理由将在下文中说明。

需要的一些前置知识:

  • 基础shell语法
  • 基础linux语法
  • 基础正则表达式语法

当然,这是指进一步改进以及完善这一功能所需要的知识,如果你只是想应用这一功能,那么直接按照下述操作步骤中的过程实现即可。

1. 新建快速操作(服务)

特别说明:新版本macOS系统中,以往的服务现被翻译为“快速操作”

2. 选择获得词语定义

3. 创建Shell脚本

因为需要有个文档来保存获取的单词定义,因此需要用shell来操作。在左侧搜索shell(记得先选中“资源库”或“实用工具”)即可看到运行Shell脚本的工作流,拖拽过来,输入下面代码即可:

  # 将单词释义保存到桌面的wordlist.txt文件下,若文件存在,则直接追加FILE=$HOME/Desktop/wordlist.txtif [ ! -f $FILE ]; thentouch $FILEfiecho -e "\n$1" >> $FILE

就此服务就完成啦,保存即可。你可以创建两个服务,一个保存英文释义,一个保存中文释义。(实际上对应于英语查词的需求,只用建立一个保存英文释义的服务即可)

4. 绑定快捷键

上述步骤完成后,你就可以直接在服务中看到你自定义的工作流。 如果你想方便快捷的保存单词,则直接在系统偏好设置>键盘>快捷键中找到对应的服务,自定义快捷键即可。


最终成果:

至此,一个简单的生词本功能已经实现,在这之后如有需要使用正则表达式对其进行格式化处理即可。

待完善

实现过程中的一些坑

实现这一功能主要参考的是第一个参考链接中“郭海旭”博客文章中的操作步骤,因为文章略为久远,以及一些描述上简略或略有偏颇的部分,导致在实现的过程中踩了一些小坑,故记录在此:

  1. 原文中的“服务”即现在的“快速操作”

  2. 原文中所给的正则表达式语句并不能得出原文中截图所示的效果,为此我重新查了几乎一上午的正则表达式语句,但是发现实际想要得出的格式化结果实现起来还是有些困难。期间还遇到了关于正则表达式字串嵌套相关的问题,在查阅博文后得以解决,由此也更感

    参考:正则表达式---------------嵌套的分组 - a fine day - 博客园

一些心得

参考:

  1. 让OS X词典具备保存单词功能 (2017.03.15新增直接导入Evernote)
  2. OS X 自带词典功能强化

让macOS词典具备保存单词的生词本功能相关推荐

  1. 测试报告——必应词典必应背单词

    原文地址:http://www.cnblogs.com/Tjamie/archive/2012/12/28/2837767.html 测试人员:10061189 谭传奇, 10061160 连昭鹏 测 ...

  2. 电子英汉词典附带背单词功能C语言程序设计,附录完整代码

    电子英汉词典附带背单词功能C语言程序设计,附录完整代码 系统需求分析 本程模拟面对英语单词有背诵和查询需求的用户.用户在实际学习过程中可能会遇到学习单词时实体单词书体积大不方便的情况,这时就可以使用便 ...

  3. pycharm 自动更正_如何在Android的自动更正词典中添加单词或短语

    pycharm 自动更正 If you type a lot of complex names, acronyms, or made-up words on your Android device, ...

  4. 通过游戏编程学Python(6)— 英汉词典、背单词

    通过游戏编程学Python 通过游戏编程学Python(番外篇)- 乱序成语.猜单词 通过游戏编程学Python(5)- 猜成语(下) 通过游戏编程学Python(4)- 猜成语(上) 文章目录 通过 ...

  5. 对爱词霸(iciba)生词本功能的一些建议

    工作中经常要用到爱词霸iciba进行生词查询,同时为了让日趋降低的单词量降得慢一些,我使用了其中的生词本功能.然而,有几点缺陷让我很不爽. 没有词义编辑功能 没有增加编辑例句 最好有一个生词编组的功能 ...

  6. Scala特质trait具备Java中类和接口的功能

    特质trait具备Java中类和接口的功能

  7. CRM客户关系管理系统开发第十八讲——实现客户拜访记录管理模块中保存客户拜访记录的功能

    跳转到客户拜访记录添加页面 要想实现客户拜访记录管理模块中的保存客户拜访记录的功能,首要前提就是点击新增客户拜访超链接之后要能跳转到客户拜访记录添加页面.前面我们都做完两个模块了,做到这一点还不是依葫 ...

  8. 为什么浏览器具备查看网页源代码这一功能?

    我是一名在校生,今天翻了翻<结网>这本书,发现里面有一个小提问,为什么浏览器具备查看网页源代码这一功能? 作为一个小白,对互联网的理解不深刻,想了半天是实在是想不通.有没有大佬能解答一下.

  9. java记事本实现新建、打开、保存、另存为、退出功能

    本文是对记事本中的新建.打开.保存.另存为和退出功能的实现和讲解.主要需要解决的问题有:如何从文件中读取内容并放入文本编辑区域?如何将对已有文件中内容的改变保存回文件中?如何创建新文件保存文本内容?接 ...

最新文章

  1. 转Java转iOS-第一个项目总结(2):遇到问题和解决方案
  2. RedHat/Centos修改root密码
  3. AIX命令参考大全,卷 4,n - r
  4. PHP,如何防止同一用户同一时间多次登录
  5. html body标签
  6. python可以构建sem模型_python-分组的熊猫DataFrames:如何将scipy.stats.sem应用于它们?...
  7. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(3)--(P3P的迭代解)
  8. ssm框架使用resultful_SSM框架整合完整案例
  9. linux的sudo apt-get install 和dpkg -i package.deb命令
  10. linux定位异常前后日志信息
  11. QQ输入法怎么设置快捷短语
  12. Go 相关的框架,库和软件的精选清单
  13. 数据库设计—图书管理数据库系统设计
  14. CI24R1低成本国产2.4G无线收发器芯片替代XN297精简版SI24R1
  15. CentOS护眼颜色
  16. 史上最详细的WinHex数据恢复大师(六大章节)视频教程
  17. APIAuto——敏捷开发最强大易用的 HTTP 接口工具 (二)
  18. 人活着就是在对抗熵增 | 熵增启示录
  19. Android Studio 基础 之 简单获取手机端所有图片
  20. 三公到底指太师太傅太保还是…

热门文章

  1. 【java 】 for循环中冒号作用
  2. 让图片填满Word表格里的单元格
  3. CSS实现div填满剩余高度
  4. 06电容阻抗-频率特性曲线
  5. 花生壳,nat123,srkura frp内网穿透对比(有主观成分
  6. 现在Easy Scheduler想贡献给Apache基金会,我们做了一份问卷看下大家的想法,也请大家积极参与,谢谢!
  7. 2022年全球市场次氯酸钠总体规模、主要生产商、主要地区、产品和应用细分研究报告
  8. Windows XP 中如何安装 pem 证书
  9. AES加解密(ECB模式)
  10. python字符串操作符-python字符串操作