以前は Ruby製のGoogle日本語入力サーバー を使っていたが、OSを変えたついでに調べたら Golang製のGoogle日本語入力のSKKサーバー があったのでこちらを使うようにした。(どちらもlocalのマシンでサーバー起動して、Google日本語入力APIとやり取りする)
SKKについてあまりわかっていないので、自分のやり方が正しいかよくわからないがとりあえず利用できるようになったので記事にしておく。(自分は辞書含めて全てutf-8で設定しているので、以降の設定もそれようとなっているので適当に読み替えてください)
まずはインストール
Golang製なので
go get github.com/akiym/go-skkserv
これでインストールできる。
作者さんの書いてる例をコピペ&ビルド
コピペしたけど、文字エンコーディングの部分は"utf8"にした。その後、go buildでビルドした。
Emacsの設定
ほんとは設定値をsetqしたら後はskk-server-openでいけそうな気がするけど、(よくわからず)できなかったので、自分は以下のように設定した。
(require 'skk-server)
(setq skk-server-host "0.0.0.0"
skk-server-prog "pass/to/go-serv" ; ビルドしたgo-skkservへのパス
skk-server-portnum 55100)
(defun my/boot-skk-server ()
"Start SKK server."
(unless (skk-server-live-p)
(async-shell-command skk-server-prog (get-buffer-create "*goskk*"))
(setq skkserv-process (skk-open-server-1))
(when (skk-server-live-p)
(set-process-coding-system skkserv-process 'utf-8 'utf-8))))
(defun my/skk-close-server ()
(interactive)
(when (skk-server-live-p)
(skk-disconnect-server)
(kill-process (get-buffer-process "*goskk*"))
(message "Server disconnected")))
(add-hook 'kill-emacs-hook 'my/skk-close-server)
最初文字コードを特に設定せずに利用した場合、文字化けしたので`skk-process-coding-system'の部分を追加したら動くようになった。設定変数でこのあたりなんとかできるのかもしれないけれど、自分が調べたかぎりではeuc-jpに強制的にかわるようだった。(詳しいかたいたらコメントいただければうれしいです。)
上のコードを利用するにはmy/boot-skk-serverをSKKでキーインプットする前に呼び出せばいい。
おわり
ハードコアなSKKユーザーの方には軟弱者と罵られそうですが、SKKを使いつつGoogle日本語入力で補助してもらうのは、なかなか快適です。便利なGoogle日本語入力SKKサーバー(のコード)を公開してくださっているかたたちに感謝です。
0 件のコメント:
コメントを投稿