;;; 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-绑定 (with-eval-after-load 'cns (define-key cns-mode-map (kbd "C-") 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