写点东西时总有英文单词记不清拼写的时候,尤其是比较长或者拼写有点怪的时候。

在Windows下,可以借助紫光拼音输入法或者谷歌拼音输入法的英文单词输入功能:
(图片来源: 驱动之家)

(图片来源: 思齐博客)

但在Linux下,我就留意到有没有什么好的选择。不过对我来说,现在大多数文字是在Emacs里面敲,本着“无所不能的操作系统”的称号,来折腾一下Emacs下面的英文单词补全吧。

查了一下EmacsWiki: CategorySpelling,里面只说到有两个扩展有这个能力: Synonyms 和 PredictiveMode。但这两个东西都有一个共同的缺点:相关依赖太多,不够简便(synonyms需要icicle才能提供英文单词补全能力,还需要下载一个20多M的词库;而PredictiveMode需要auto-overlay和completion-ui以及其它一些包)。

Dabbrev闪亮登场

而后我想起了之前看到的dynamic abbreviation补全方式,这是Emacs自带的功能。跟普通abbreviation不同的是,它不需要你预先定义缩略语和展开形式这样的对子(比如abbr -> abbreviation),而是在其它buffer中查找。

也就是说,只要我在Emacs打开 /usr/share/dict/words 就可以用M-x dabbrev-expand或者M-x hippie-expand进行补全英文单词了,如果有多个备选项,你再调用一下就可以选到下一个。这算不算最简单的英文单词补全方法?

(可能有朋友会问那个 /usr/share/dict/words 是什么,哪里来的。这个文件存放的是单词列表,每行一个单词,在Debian上这个文件它可能实际上指向miscfiles包提供的韦伯国际英语单词表(/usr/share/dict/web2),wamerican包提供的美式拼写词汇表(/usr/share/dict/american-english),或者dictionaries-common包提供的一份单词表(不清楚来源和与另外两个的区别)。你想用哪个就打开哪个好了。而且 http://wordlist.sf.net 这个网站还其它一些单词表。)

其实这种方式也可以用来补全其它的内容,比如唐诗、宋词: Debian的fortune-zh包,里面收录了唐诗三百首、宋词一百首,在Emacs中打开 /usr/share/games/fortunes/tang300.u8,就可以用M-x dabbrev-expand来补全唐诗了 :-)

Auto-Complete

不过内置的dabbrev-expand/hippie-expand有一个小缺点: 有多个备选的时候只能一个个轮换,不能一下子看到所有备选项进行挑选,也不能在多个备选项里面再搜索什么的。

而我最喜欢的补全包 auto-complete 就可以解决这个问题(而且它还支持模糊搜索(仅限英文))。它自己支持从其它buffer取内容补全,底层不需要dabbrev。不过基于性能考虑,缺省没有把words-in-same-mode-buffers 和words-in-all-buffers 这两个补全源配置在ac-sources里面。我也不建议将这两个源加到缺省ac-sources里面去,可用下面的方法:

Auto-Complete包在1.x (?)之后会对每个补全源(source)提供一个独立的命令:ac-complete-xxxx(前提是得用新的ac-define-source来定义源,而不是以前的defvar方式),所以只需要单独调用 ac-complete-words-in-all-buffers 命令就可以了。

(global-set-key (kbd "C-M-/") 'ac-complete-words-in-all-buffers)(defun ac-expand-english-words ()(interactive)(find-file-noselect "/usr/share/dict/words")(call-interactively 'ac-complete-words-in-all-buffers))(global-set-key (kbd "C-, w") 'ac-expand-english-words)

转载于:https://www.cnblogs.com/bamanzi/archive/2011/08/20/emacs-complete-words.html

Emacs: 英文单词(或唐诗宋词/其它词库)补全相关推荐

  1. CIKM 2022最佳论文:融合图注意力机制与预训练语言模型的常识库补全

    ©作者 | 巨锦浩 单位 | 复旦大学硕士生 来源 | 知识工场 研究背景 常识在各种语料库中很少被明确表达,但对于机器理解自然语言非常有用.与传统的知识库(KG)不同,常识库(CKG)中的节点通常由 ...

  2. macos 10.15.3 安装vim+python3 +ycm自动补全+第三方库补全

    效果: macos 10.15.3   Catalina 默认安装是 vim8.1 / python2.7.16/python3.7.3  . vim8.1 没有带python3支持,需要更新到最新版 ...

  3. 爬取唐诗宋词生成词云

    Python 高并发线程爬取诗词之诗词分析 本节所讲内容: 1.5分钟快速了解爬虫概念 2.beautifulsoup 匹配原则 3.wordcloud 使用详情 实战:爬取中国唐诗宋词,体验文人雅士 ...

  4. emacs python_Emacs 下使用 lsp-mode 对 Python 进行补全

    LSP 是什么? LSP 全称是 Language Server protocol , 是由 Microsoft 主持开发的通用语言分析器协议. 最初是为 Visual Studio Code 开发的 ...

  5. oracle 全文检索 词库,最全中文情感和语义词库(包含好几种)

    [实例简介] 目前最全的中文情感词典,包括以下内容: 1. 褒贬词及其近义词: 2. 汉语情感词极值表: 3. 清华大学李军中文褒贬义词典: 4. 情感词典及其分类: 5. 情感词汇本体: 6. 台湾 ...

  6. 手把手教你配置linux下C++开发工具——vim+ycm(YouCompleteMe),支持基于语义的自动补全和第三方库补全(史上最简单、史上最透彻、史上最全的终极解决方案)

    截止到目前,vim稳定版本已经到了8.2+,ycm(YouCompleteMe的简称)最新版本与几年前的安装配置截然不同了.之前网上很多教程也教不得法,生搬硬套,没有讲透彻.所以,才下定决心写一篇自认 ...

  7. 【解题报告】Leecode 748. 最短补全词——Leecode每日一题系列

    题目链接:https://leetcode-cn.com/problems/shortest-completing-word/ 题解汇总:https://leetcode-cn.com/problem ...

  8. leetCode最短补全词

    leetCode最短补全词 题目要求如下: 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返回 words 中的 最短补全词 . 补全词 是一个包含 licens ...

  9. Leetcode 748 最短补全词

    题目 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出并返回 words 中的 最短补全词 . 补全词 是一个包含 licensePlate 中所有的字母的单词.在所 ...

最新文章

  1. C语言 小游戏之贪吃蛇
  2. nginx 正向代理配置
  3. 结对-贪吃蛇游戏-设计文档
  4. 【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点
  5. 工作270:el-dialog的open回调
  6. QGIS+GH + MapServer
  7. iOS开发之NSData和NSString相互转换
  8. slub释放过程-do_slab_free
  9. [BZOJ4653 区间]
  10. AB PLC 1769_L24ER_QB1B新机测试固件下载-程序下载
  11. 超声非线性成像-谐波成像基本知识
  12. 使用JBE修改.class字节码文件
  13. python爬虫之英汉互译(爬虫+pyqt5)
  14. 企业为什么要进行数字化转型1.1——顺势而为谋发展
  15. app与后台通信完整流程
  16. Python3.6 安装PIL
  17. 三十二位计算机游戏推荐,这32种课间游戏不重样,总有一款适合您和学生!| 推荐收藏...
  18. 憋个大招!高性能mysql第四版pdf在线阅读
  19. IP网络存储iSCSI之一iSCS的概念、组成及工作原理
  20. 管家婆财贸双全提示此记录为系统会计科目禁止删除处理方法

热门文章

  1. 数据安全前沿技术同态加密
  2. Apple Watch Ultra 省电配置
  3. lisp调用vlx模块_CAD二次开发,lisp程序生成应用程序VLX,如何在CAD里面创建一个快捷图标,点击快捷图标就可以调用程序?...
  4. 是学Java好呢?还是学C++更有前途?
  5. LeetCode力扣-----Python----Day1
  6. 吴恩达机器学习课程全(python实现)
  7. 不同品牌android手机ui,三种不同界面的安卓系统_华为手机_手机Android频道-中关村在线...
  8. 获取当日的星期英文表示
  9. usb Plaxis v8.2+SP4 professioner-ISO 1CD(大型岩土工程有限元设计计算软件,完全安装版,好用
  10. SqlServer2008