56 lines
2.0 KiB
EmacsLisp
56 lines
2.0 KiB
EmacsLisp
;;; init-segmentation.el --- Chinese segmentation config -*- lexical-binding: t -*-
|
|
|
|
;;; Commentary:
|
|
|
|
;;; Code:
|
|
|
|
;; emacs-chinese-word-segmentation
|
|
(cond
|
|
(*is-windows*
|
|
(add-to-list 'load-path "h:/emacs/emacs-chinese-word-segmentation/")
|
|
;; 设置为进程调用方式
|
|
(setq cns-process-type 'shell)
|
|
;; 设置可执行文件路径
|
|
(setq cns-prog "h:/emacs/emacs-chinese-word-segmentation/cnws.exe")
|
|
;; 设置字典目录
|
|
(setq cns-dict-directory "h:/emacs/emacs-chinese-word-segmentation/cppjieba/dict")
|
|
;; 直接设置进程命令,绕过 Windows shell 检测
|
|
(setq cns-process-shell-command
|
|
(format "%s %s %s %s %s %s"
|
|
cns-prog
|
|
(concat (file-name-as-directory cns-dict-directory) "jieba.dict.utf8")
|
|
(concat (file-name-as-directory cns-dict-directory) "hmm_model.utf8")
|
|
(concat (file-name-as-directory cns-dict-directory) "user.dict.utf8")
|
|
(concat (file-name-as-directory cns-dict-directory) "idf.utf8")
|
|
(concat (file-name-as-directory cns-dict-directory) "stop_words.utf8"))))
|
|
|
|
(t
|
|
(add-to-list 'load-path "~/emacs-stuff/emacs-chinese-word-segmentation/")
|
|
;; 设置为进程调用方式
|
|
(setq cns-process-type 'shell)
|
|
;; 设置可执行文件路径
|
|
(setq cns-prog "~/emacs-stuff/emacs-chinese-word-segmentation/cnws")
|
|
;; 设置字典目录
|
|
(setq cns-dict-directory "~/emacs-stuff/emacs-chinese-word-segmentation/cppjieba/dict/")))
|
|
|
|
;; 其他配置
|
|
(setq cns-recent-segmentation-limit 40)
|
|
(require 'cns nil t)
|
|
;; 自动启动
|
|
(when (featurep 'cns)
|
|
(add-hook 'find-file-hook 'global-cns-mode))
|
|
;; 取消C-<backspace>绑定
|
|
(with-eval-after-load 'cns
|
|
(define-key cns-mode-map (kbd "C-<backspace>") nil))
|
|
;; vterm下关闭cns-mode
|
|
(add-hook 'vterm-mode-hook
|
|
(lambda ()
|
|
(run-at-time 0 nil
|
|
(lambda ()
|
|
(when (derived-mode-p 'vterm-mode)
|
|
(cns-mode -1))))))
|
|
|
|
(provide 'init-segmentation)
|
|
|
|
;;; init-segmentation.el ends here
|