UTF 8 設定めも - wachikun/yaskkserv2 GitHub Wiki

UTF-8 設定めも

実際に UTF-8 で運用している設定のメモです。 絵文字も問題なく使えています。

EUC から移行するならば、個人辞書のバックアップを忘れずに。

.emacs.d/init.el

;; ddskk の utf-8 設定
(setq skk-jisyo-code 'utf-8)

;; ddskk <- yaskkserv2 のみ utf-8 で通信するための設定
(defun skk-open-server-decoding-utf-8 ()
  "辞書サーバと接続する。サーバープロセスを返す。 decoding coding-system が euc ではなく utf8 となる。"
  (unless (skk-server-live-p)
    (setq skkserv-process (skk-open-server-1))
    (when (skk-server-live-p)
      (let ((code (cdr (assoc "euc" skk-coding-system-alist))))
        (set-process-coding-system skkserv-process
                                   'utf-8 code))))
  skkserv-process)

(setq skk-mode-hook '(lambda ()
                       (advice-add 'skk-open-server :override 'skk-open-server-decoding-utf-8)))

;; 絵文字を表示するには Cairo 版 Emacs (HEAD はデフォルトで Cairo が使われるはず) で下記設定も必要 (2021年4月4日(日) 現在)
(progn
  (set-fontset-font t 'unicode (face-attribute 'default :family))
  (set-fontset-font t '(#x2300 . #x27e7) "Noto Color Emoji" nil 'append)
  (set-fontset-font t '(#x27F0 . #x1FAFF) "Noto Color Emoji" nil 'append))

辞書の作成

下記辞書を使わせていただいています。

yaskkserv2_make_dictionary は必要な場合のみ自前で辞書の文字コード変換をするので、事前に nkf などで変換をせず、そのまま指定することに注意が必要です。

絵文字など、 UTF-8 <-> EUC 変換できない文字がありますので、入力も出力も UTF-8 にしている所がミソです。

$ yaskkserv2_make_dictionary --utf8 --dictionary-filename=SKK-JISYO.total+zipcode+kancolle.emoji.yaskkserv2.utf8 SKK-JISYO.total+zipcode SKK-JISYO.kancolle SKK-JISYO.emoji-ja.utf8 SKK-JISYO.emoji.utf8

yaskkserv2 の起動

yaskkserv2 --google-suggest --google-cache-filename=/CACHE-PATH/yaskkserv2_test.cache.utf8 /DIC-PATH/SKK-JISYO.total+zipcode+kancolle+emoji.yaskkserv2.utf8