vim-users.jp

Hack #123: VimでSKK日本語入力環境を実現する

Posted at 2010/02/09
このエントリーをはてなブックマークに追加

Emacsでは様々な日本語入力のプラグインがあります。
Vimでもkeymapなどの設定をいじれば可能ですが、
あまりkeymapファイルをいじった人は少ないでしょう。
そこでVimプラグインで日本語入力を実現しようと開発された、skk.vimを紹介します。

概要

skk.vimはYagi Noriaki氏によって作られたVimで日本語入力を実現するプラグインで、以下のような特徴を持ちます。

  • SKKによる日本語入力を実現する
  • so skk.vimのみで動作する (Windows環境では辞書ファイルのパスが異なるため、別途設定を.vimrcに書く必要があります)
  • 軽い

SKKについて簡単に説明すると、形態素解析(文節の区切り)をSKK自身が行わず、
使用者自身が行うように矯正することで、実装が簡単であり、
かつ慣れれば高速で正確なかな漢字変換が行えるInput Methodです。

形態素解析を行わないことで軽い動作を実現し、 かつ自分の意図した変換結果を得られやすいとされています。
詳しくは各自Wikipediaを見るなりググったりしてください。

導入

SKKの辞書を用意する

ここからダウンロードするか、Linuxだったら

skkdic skkdic-extra

のようなパッケージが用意されていればそれをインストールしてください。

skk.vim インストール

普通のVimプラグインと違いはありません。
www.vim.orgから最新版をダウンロードして解凍してVimのディレクトリにインストールするだけです。

メリット

  • sshのリモートホスト先で日本語入力ができない時もVim上で日本語を入力できる
  • 軽い
  • 自分の意図にあった変換をしてくれる(かもしれない)

デメリット

  • 他のInput Methodには戻れない
  • SKK信者でVim信者Vimmerは母数的に考えて少ない(要出典)

・・・はネタとして

  • Vimでしか使えない

MacならAquaSKK、Windowsならskkime、Linuxならuim-skkやscim-skkなど、
それぞれのOSのIMを変えてしまえばどのアプリケーションでも使えます。 ただ上で言った「sshのリモートホスト先で日本語入力ができない時もVim上で日本語を入力できる」は大きなメリットだと思います。
緊急時に備えてインストールしておくのもアリかもしれません。

  • SKKは人によっては慣れが必要かもしれない

SKKでもmecab-skkservというものを使えば普通の日本語入力と似た環境を手に入れられますが、残念ながらskk.vimはskkserv非対応です。

これまでのあらすじ

しかしskk.vimには一つ問題があり、 それはもう作者によるメンテナンスが行われていないことです。
skk.vimにはファンも多く、インターネット上でも野良パッチが散見されますが、
それらは本家にマージされることはなく www.vim.orgでの最終更新日は2006年10月15日で止まっています。

そんな中私はこの状況をなんとかしたいといった気持ちはまったくなく、
ふとした思いつきからGithubにskk.vimの改良版を登録し、それが一部の人の反響を受けます。(要出典)
気を良くした私は、勢いで作者である八木氏とメールで連絡をし、
ライセンスの確認と、メンテナンスの意志があるか、
また今後作者に無断で登録してしまったリポジトリに継続してコミットしていいかを尋ねました。
八木氏はこれに快く了承して、ライセンスは好きにしていいと仰ってくれました。

無事八木氏の了解が得られ、どんどんskk.vimのパッチをマージしていこうと考えたものの、
skk.vimがVimスクリプトの貧弱な時代に書かれたものだったため、互換性を維持するためのコードが散らばっていました。

ドキュメントはなんとか書いたものの、Vim6時代のコードを知らないために、変更をすることに怖気づいていたところ、
リポジトリのメンバーからもコードを一から書き直す必要があるとの声が高まってきます。
私はそれを喜んで賛成し、skk.vimのメンテナンスを続けることを約束しながらも、結局新しいskk.vimを作ることにしました。

skk7.vim (仮称)

新しいskk.vimは、今現在skk7.vimという仮称のもと開発が行われています。
それは今私のマシン上、完璧クローズドな環境で行われていて、
未だベータ版ですが、近々Githubに登録するつもりです。

しかしskk7.vimというのはあくまで仮称であって、正式名称ではありません。
未だ続々と希望が寄せられているものの、そもそも多数決で決めるのか、独断で決めるのか、それすらも決めていませんでした。

というわけで

  • 新しい名前希望!
    • 決め方は決めるつもり
  • skk.vimかskk7.vimの開発に興味があるなら、私かリポジトリのメンバーになんらかのコンタクトをとってくれれば、すぐにメンバーに招待したい
    • GithubのIDを取得している必要があります
    • 参加表明して何もしなくてもOKな気楽っぷり
    • 気が向いた時に機能追加なり修正を新しいブランチにプッシュしてもらえれば適当に拾ってマージします
  • その他要望等あれば下の連絡先からどうぞ

連絡先

参考リンク

tyru

もどる
blog comments powered by Disqus