3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Vimにskk.vimを導入して快適な日本語入力環境を作る

最近WSLのUbuntuでVimの使い方を学習しているLinux初心者です。
Vimの日本語入力に不便を感じていた中で,skk.vimなるものの存在を知り,興味を持ったので使ってみようと思いましたがまとまった情報が少なくやや躓いたので,備忘録も兼ねて記事を書いてみることにしました。
なお,前述した通り筆者はLinux初心者ですので,Vimmerの方々から見れば当たり前のことや,不適切なことを書いている可能性があります。
お気づきの点がございましたらご指摘いただけると幸いです。
また筆者はWSLでUbuntu 20.04を使っていますが,環境によっては以下の説明が当てはまらないこともあるかもしれません。

SKKとは?

※この箇所を書くに当たって以下のWikipediaの記事を参考にしました。

skk.vimは,SKKというEmacs向けの日本語入力システムをもとにした変換エンジンですので,skk.vimを知るためにはSKKが何なのかを知る必要があります。
SKKは,1987年に,東北大学の佐藤雅彦教授(当時)によって開発された日本語入力システムです。
日本語入力システムであるという点ではMicrosoft IMEなどと同じですが,その機能は非常に独特で,他の日本語入力システムとは大きく異なります。
Wikipediaの表現を借りれば,「かな漢字変換において形態素解析に基づいた変換を行わないこと」が特徴です。
どういうことか具体的に見ていきましょう。

「ここで履物を脱いでください」と入力するには?

例えば,「ここで履物を脱いでください」という有名な文を入力することを考えます。
一般的な日本語入力システムは,「ここではきものをぬいでください」と入力されると,例えば「ここで/履物を/脱いで/ください」というように,単語や文節の区切りを識別して変換を行います。

しかし,環境によっては「ここでは/着物を/脱いで/ください」というような予期せぬ変換結果になるかもしれません。
その場合は,ユーザが自力で単語の区切りを修正する必要があります。
日本語入力システムの精度は向上してきているため,以前と比べるとユーザの負担は軽くなっているようですが,それでもミスをゼロにすることはできません。

SKKの考え方

一方,SKKは根本的に日本語入力の手法(思想)が異なります。
先ほど述べたように,通常の日本語入力システムでは単語を区切る作業の一部をシステムが自動で行い,不備がある部分のみユーザが手動で修正します。
それに対し,SKKは,「どうせ変換ミスをゼロにはできないのならその作業を全部ユーザに任せればいいじゃないか」という発想です。

SKKの入力方法

入力方法をざっくり言うと,

  • 平仮名を入力→全て小文字で入力する(すぐに確定される)
  • 漢字を入力→漢字にしたい単語の最初のローマ字を大文字にする(スペースキーで変換する)
  • 送り仮名を入力→送り仮名の最初のローマ字を大文字にする

という風です。
例えば,「ここで履物を脱いでください」と入力するには,「kokodeHakimono␣woNuI␣dekudasai」と入力します。
一方,「ここでは着物を脱いでください」と入力するには,「kokodehaKimono␣woNuI␣dekudasai」と入力します。

詳細については後述します。

skk.vimとは?

SKKはEmacs向けのソフトウェアですが,それをVimで使えるようにVim scriptで再現したのがskk.vimです。Vimで通常の日本語入力システムを使う場合,全角/半角の切り替えなどが煩雑ですが,skk.vimはその特性上その負担を若干軽減することができます。

導入の流れ

以下の流れで導入します。
①skk.vimをダウンロードし,プラグインとしてインストールする。
②SKKの辞書ファイルをダウンロードし,適当なディレクトリに配置する。
.vimrcに追記する。

①skk.vimのダウンロード・インストール

以下のように行います。
※Vimは初期状態であり,.vimフォルダは存在しないという前提の下です。

~$ git clone https://github.com/tyru/skk.vim
~$ mkdir .vim
~$ cp -r skk.vim/plugin/ .vim

②SKKの辞書ファイルのダウンロード

SKKの辞書は複数ありますが,ここでは最も標準的なものをダウンロードします。
また,辞書ファイルはホームディレクトリに配置することを想定しています。

~$ wget http://openlab.jp/skk/dic/SKK-JISYO.L.gz
~$ gzip -d SKK-JISYO.L.gz

③.vimrcへの追記

WSLのUbuntuではデフォルトで.vimrcが用意されているようです(他の環境は知りません)。
筆者の場合はよく分からないのでデフォルトのものを削除して新規に作成しました。
以下のように記述します。

.vimrc
"SKKの辞書ファイルの場所
let skk_large_jisyo = '~/SKK-JISYO.L'
"ユーザ辞書を自動で保存する(お好みで)
let skk_auto_save_jisyo = 1

その他の設定項目については以下のサイトを参照してください。

動作確認

以上の操作が完了したら,正しく動作するか確認してみましょう。
通常通りVimを起動し,挿入モードに切り替えたらCtrl-jを押します。
すると,画面下部に「--挿入(lang)--」と表示され,日本語入力が可能になります。
通常の挿入モードに戻すにはもう一度Ctrl-Jを押します。

使い方

本稿ではskk.vimの導入を解説することを目的としていること,また筆者がskk.vimをまだ使い慣れていないことから,使い方の説明はごく簡単に記述します。もしかしたら詳細を追記するかもしれません。

  • Ctrl-jで切り替え
  • 小文字入力で平仮名入力
  • 漢字にしたい単語の最初は大文字で入力し,以降は小文字で入力→スペースキーで変換
  • 送り仮名の最初も大文字で入力し,以降は小文字で入力
  • qキーで平仮名入力/片仮名入力の切り替え
  • 平仮名入力時に片仮名を入力したい場合,単語の最初を大文字で入力し,単語末でqキーを押すことで変換可能

以上です。最後まで読んでくださりありがとうございました。
LGTMしてくださると励みになります。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
3
Help us understand the problem. What are the problem?