FreeBSDでxyzzyを使いたい
自宅でFreeBSDをメインに使い始めて2ヶ月くらい経ったわけですが、どうしても慣れないものがエディタです。WindowsではxyzzyというEmacsライクな操作性・Lisp拡張を使えるエディタを使っていました。
EmacsライクではあってもEmacsではないのでやっぱりxyzzyを利用したいのです。
そういうわけでwineを利用してFreeBSD上でxyzzyを利用することにしました。
portsのemulators/wineとarchivers/lhaをインストールしてxyzzyを作者さんのページからダウンロードします。
いつもWindowsで利用してたときと同じようにCドライブに相当するディレクトリにprogramsというディレクトリを作りその中にxyzzyを展開します。
該当ディレクトリに移動して
# wine xyzzy.exe
とすると初回はWine Geckoのインストールを経てxyzzyが起動します。
さて、起動したのはいいのですが、2バイト文字が文字化けして正常に表示できません。
これは「ツール」の中にある「共通設定」でフォントタブを選択し、文字セットの部分をを「日本語」にして日本語を表示できるフォントを指定します。他の文字セットは適当にやっておけばよさそうです。
ちなみに、グーグルさんに聞いてSCIMを利用するためにレジストリのInputStyleを指定するような情報も見つかったのですが、今回は特に設定をしなくても利用できました。
しかし、2バイト文字は表示できるもののアンチエイリアスが効いていないのでカクカクの文字が表示されてしまします。
# wine /home/hoge/.wine/drive_c/windows/regedit.exe
というで感じでレジストリエディタを起動し、HKEY_CURRENT_USER\Control Panel\Desktop\FontSmoothingの値を「1」にしてからxyzzyを起動しなおすとアンチエイリアスが効いた状態で起動します。
続いて、Windowsでは環境変数としてXYZZYとかXYZZYHOMEを設定する必要があります。
Wine上ではシェルの環境変数がWineに引き継がれるようなのでsetrnvなどで設定してみたのですが、うまくいきません。
何度かトライした後に、今回xyzzyはFreeBSDのホームディレクトリの下に保存してあって、他のユーザはいないし、利用もしないのですっぱりと環境変数を設定しないことにしました。
このあきらめが功を奏して設定が通るようになりました。
WindowsでXYZZYHOMEで設定した場合に保存されるファイル群は/home/hoge/.wine/drive_c/users/hogeに保存されるようになるようです。
そういうわけで特に手を加えずに起動させてNetInstallerを組み込んで良く使う拡張Lispを突っ込めば環境完成。
起動させるのにコマンドが長いので起動スクリプトを作ってKDEのメニューに登録したりすればOK。
これで使い慣れたエディタをFreeBSD上で使えるようになりました。
ちなみにxyzzyはソースが公開されているので、それを使えばFreeBSD上にネイティブ起動させることができるかもしれません。そういった技術を習得できればやってみたいですね。