cireu / jieba.el

在Emacs中使用jieba中文分词
GNU General Public License v3.0
44 stars 7 forks source link

+TITLE: Jieba.el -- 在Emacs中使用jieba中文分词

众所周知, Emacs并没有内置中文分词系统, 以至于 =forward-word= 和 =backward-word= 以及 =kill-word= 等以单词为单位的操作只能粗暴的标点符号进行确定所谓"词汇", (其实是中文里的句子).

=jieba.el= 利用[[https://github.com/yanyiwu/nodejieba][nodejieba]]对buffer中的中文句子进行分割, 并且增强了上述以词为单位的 操作, 使使用Emacs处理中文文本的体验更加流畅.

注: 该图片文字来源于[[https://zh.wikipedia.org/zh-cn/GNU%25E9%2580%259A%25E7%2594%25A8%25E5%2585%25AC%25E5%2585%25B1%25E8%25AE%25B8%25E5%258F%25AF%25E8%25AF%2581][维基百科]], 遵循CC BY-SA 3.0条款使用

[[file:screenshot.gif]]

** 安装nodejieba 执行以下命令安装nodejieba

+BEGIN_SRC sh

npm install

+END_SRC

** 安装jieba.el

从[[https://elpa.gnu.org/packages/][GNU ELPA]]安装jieba.el的依赖[[https://elpa.gnu.org/packages/jsonrpc.html][jsonrpc]], 然后将jieba.el放入你emacs的 =load-path= 中, 在 =.emacs= 文件中写入

+BEGIN_SRC elisp

(require 'jieba) (jieba-mode)

+END_SRC

你也可以使用 =use-package=

+BEGIN_SRC elisp

(use-package jieba :load-path "/path/to/jieba" :commands jieba-mode :init (jieba-mode))

+END_SRC

启用 =jieba-mode= 后, =jieba.el= 会自动重新映射 =forward-word=, =backward-word=, =kill-word=, =backward-kill-word=, 到对应的jieba增强版本上.

你也可以自行定义 =jieba-mode-map= 来修改这些操作的按键绑定

| 按键名 | Action | |----------------------------+--------------------------| | =jieba-forward-word= | 向前移动一个中英文单词 | | =jibea-bacward-word= | 向后移动一个中英文单词 | | =jieba-kill-word= | 删除光标后的一个中文单词 | | =jieba-backward-kill-word= | 删除光标前的一个中文单词 | | =jieba-mark-word= | 选中光标下的一个中文单词 |

欢迎提交PR和Issue report.