いまだにwnn7を使い続けているのですが,新しいOSやemacsへの対応が苦しくなってきました。これまでFreeBSD 10.3-RELASE-p29にemacs 25.3.1,3をの組み合わせで別のサーバーにインストールされているWnn7に接続して日本語変換していました。emacs 21以降はwnn7egg (ななたまご)が正しく動かないのでtamago-tsunagiを使っていました。tamago-tsunagiのインストール方法はここに書いています。
しかし,サーバーを更新しようとしてFreeBSD 13.1-RELEASE-p.3にemacs 28.2_2,3をpkgからインストールして,tamago-tsunagiをコンパイルしようとしたところ,
Symbol's function definition is void: make-coding-system
というエラーがでてコンパイルが通りません。emacs 28からmake-coding-systemが廃止になったことが原因のようでemacs 27までならなんとかなるのかもしれませんが,pkgからはもはや古いバージョンはインストールできないのでどうにもなりません。いまやFreeBSDを日常的に使うような変人はほとんどいなくなったうえ,Wnn7を頑張って使っているような人はもはや絶滅の危機に瀕しているはずですのでネットで調べてもほとんど何も情報がみつかりません。しかし,ありがたいことに私と同じような境遇で頑張っている人がいました。
ここにはWnn7の情報が,さらに,こちらにはWnn8の情報があって,Wnn8については現在でも情報が更新されているようです。私自身はWnn8のライセンスは持っていないのでWnn8をWnn7と読み替えて対応すればよさそうです。ありがたいことです。
結局のところ,tamago-tsunagiはemacs 28には対応できておらず(更新されていないのでしょうがない),wnn7egg (ななたまご)にパッチをあてて使う,というのがいちばん簡単そうです。こちらで作られたパッチファイル(files.tgz)をダウンロードしてportsでwnn7eggをコンパイルしてインストールします。
files.tgzをありがたくダウンロードさせてもらい,
rootになって
cd /usr/ports/japanese/wnn7egg/
tar xzvf (somewhere)/files.tgz
make
make install
とすれば/usr/local/share/emacs/site-lisp/wnn7egg/に一式がインストールされます。
そのうえで,~/.emacs.d/init.elをwnn7eggにあわせて編集します。tamago-tsunagiとはまったく互換性がないのでwnn7eggにあわせて以下を追加します。
(setq load-path (append '("/usr/local/share/emacs/site-lisp/wnn7egg") load-path))
(global-set-key "\C-\\" 'toggle-input-method)
(load "wnn7egg-leim")
(set-language-info "Japanese" 'input-method "japanese-egg-wnn7")
(setq enable-double-n-syntax t)
(setq use-kuten-for-period t)
(setq use-touten-for-comma nil)
(setq wnn7-server-name "hoge:0")
;; 句読点の設定
;; "."を押すと"."にする設定
;(setq its-hira-period ".")
;; ","を押すと","にする設定
(setq its-hira-comma ",")
(setq its-enable-fullwidth-alphabet nil)
(setq wnn7-set-boin-kabusoku nil)
wnn7-server-nameの行はhogeというサーバーで動いているjserverに接続するという意味です。ローカルならlocalhostとかいてよかった気もしますがもうすっかり忘れてしまいました。
これでとりあえずemacs 28でwnn7のjserverに接続して日本語変換ができるようになりました。もう20年くらいwnn7を使っているのでもうこの環境を帰ることができず,結果として文字コードもeucから脱却できない,という状態が続いています。もう,どうにも時代にあわなくなってきていることは認識していますがどうしようもありません。
困ったことです。