SKKの辞書を1つに統合しつつUTF-8で保存する
2019/03/152021/04/15
IT vimskkdocker

概要

Macが手元にないときでも手軽にテキストメモを取る環境を検討していた。 昔、iPhoneにBluetoothキーボードを接続してエディタを使ってメモを取っていたが、日本語変換があまりにも微妙すぎるため段々使わなくなってしまった。

私は、MacではエディタはMacVimを使い、日本語入力にはAquaSKKを使っている。 vimもskkも非常に便利だが、慣れてしまうと他のものが使いづらくて仕方がなくなってしまうのが欠点だ。

かなり昔にiOS用のVimというアプリが出て来たことは知っていたが、このアプリは日本語入力ができなかったり、他のアプリとのファイル共有が出来なかったりと使い勝手が微妙だった(ひょっとしたら、どちらも今は出来るようになっているかも?)。 まぁ、iPhoneでvimが動くだけで嬉しいのだが。

そんなことを思っている中、今はiPhoneにiVimというアプリがあることを知った。 このアプリは、日本語表示もvim scriptも実行でき、純正のファイルアプリやiTunes経由でファイルをやり取りできる。 vim scriptが実行できるなら、eskk.vimを動かせば、iPhoneで、vim + skkという環境を構築できるではないかと直感した。

調べてみたら同じようなことを考えている方が居るもので、自分の中での最高の持ち運び簡単なメモマシンの構築にとりかかった。

その過程で分かったのだが、eskk.vimは辞書は1つしか使えないらしい(SKK用の辞書はこちらに色々ある)。 そして、iVimでは辞書をutf-8で保存しておかないと動かないらしい。

この記事では、これらの問題を解決するために、複数の辞書を1つにまとめた上で、UTF-8で保存するツールを作成したのでそれの紹介をする。

リポジトリはこちら

基本的にdocker及びdocker-composeがインストールされていれば動作する。

使い方

基本的には以下のコマンドを実行するだけでOK。

1
2
3
git clone https://github.com/eidera/skktools.git
cd skktools
make

contentsディレクトリ以下に以下の2つの辞書が出来る。

前者(SKK-JISYO.L.euc-jisx0213)は、SKKの辞書で通常使われている文字コードの辞書である。 ツール内部では、これを元に後者(SKK-JISYO.L)のUTF-8の辞書を作成している。

この辞書は名前こそSKKのL辞書っぽいが中身は以下の辞書を全てマージしたものになっている。

作成される辞書名や、マージしたい辞書を変更したい場合には、scripts/run.bashを変更すればOK。

iVimにeskk.vimを導入する

.vimrc のeskk関連の設定は以下にしている。

1
2
3
let g:eskk#directory = "~/.eskk"
let g:eskk#dictionary = { 'path': "~/.eskk-jisyo", 'sorted': 0, 'encoding': 'utf-8', }
let g:eskk#large_dictionary = { 'path': "~/.eskk/SKK-JISYO.L", 'sorted': 1, 'encoding': 'utf-8', }

余談:MacからiVimを操作する

以上の設定をすれば、Bluetoothキーボードを使ってiVim上でSKKによる日本語変換が出来るようになる。

ところでMacを操作しているときにiVimを操作しようとして、わざわざiPhone用のBluetoothキーボードを使うのはアホらしい。 良い方法無いかな調べてみたところ、Macで使っているキーボードをiPhoneのBluetoothキーボードに出来るMacのソフトウェアがあることを知った。 似たような機能のソフトウェアはいくつかあるみたいだが、私は Typeeto というソフトウェアをMacに導入した。

Mac App Storeでは現在2400円とちょっとお高めの値段だ(似たような機能のソフトウェアで価格も安いものもある)。 公式ページからは7日間の試用期間のソフトウェアをダウンロードできる。

Macを操作しているときに、MacのキーボードでiPhoneを操作できるのは思いの他、便利だった。