詳説 最新のVim+SKKで日本語入力する方法
突然ですが、昨日こんなツイートをしました。
このツイートが筆者の想像よりも反応があったので、今回はvimにSKKという日本語IME環境を構築する方法を記事にしていきます。SKKってなんぞや??
多分これを見ている読者のほとんどがSKKを知らないと思います(筆者もvim-jpに入るまで知らなかった)
SKK(エスケイケイ、Simple Kana to Kanji conversion program)とは、オープンソースで開発されている日本語入力システム(日本語入力メソッド)である。
https://dic.nicovideo.jp/a/skk より
簡単に言えばGoogle日本語入力などと同じIMEです。SKKについて詳しく説明すると記事が長くなる&本筋から外れてしまうので今回は解説しません。
詳しく知りたい方は以下をご覧ください。
環境構築
今回は以下の手順で行なっていきます。
- OSにVim起動のショートカットを登録
- denops.vimとdenops-skkeleton.vimの導入
- ddc.vimの導入、連携
筆者の環境は以下の通りです
OS: ArchLinux(Gnome)
Vim 8.2.3458
Plugin Manager : dein.vim
OSにVim起動のショートカットを登録
まずはVimを一発で起動できるように、ショートカットを登録していきます。
- Linuxのkeyborad設定を開き、「Customize Shortcuts」をクリックします。
- 出現してきたウィンドウの一番下に、「Custom Shortcuts」があるのでクリックします。
そうすると、このような画面になっていると思います。
みなさんの画面はおそらく何も追加されていないと思います
- 「+」をクリックして、以下の通りに入力します。
Name Launch Vim
Command gnome-terminal -- vim
Shortcut Alt+V(好みで変更してください)
これで、「Vimのショートカット追加」のステップは完了です。
denops.vimとdenops-skkeleton.vimの導入
では次に、vimのSKKプラグインを導入していきます。
導入するプラグインはdenops-skkeleton.vim、denops.vimです。
筆者はdein.vimでプラグインを管理しているため、以下のようになります。
(お使いのプラグインマネージャに適宜読みかえてください)
[[plugins]]
repo='vim-denops/denops.vim'
[[plugins]]
repo='vim-skk/denops-skkeleton.vim'
そして、.vimrc
に以下を追記します。
imap <C-j> <Plug>(skkeleton-toggle)
cmap <C-j> <Plug>(skkeleton-toggle)
call skkeleton#config({
\'eggLikeNewline':v:true
\})
これで、「denops.vimとdenops-skkeleton.vimの導入」のステップは完了です。
vim上で日本語が入力できるようになりました!
ddc.vimの導入、連携
ここからはおまけの様なものです。
vim界隈では有名なShougoさんが、最近ddc.vimという自動補完プラグインをリリースされました。
ここでは、ddc.vimとdenops-skkeletonを連携させ、より日本語入力を効率化していきたいと思います。
まずはddc.vimと関連プラグインを導入していきましょう
dein.toml
に以下を追記してください。
[[plugins]]
repo='Shougo/ddc.vim'
[[plugins]]
repo='Shougo/ddc-matcher_head'
[[plugins]]
repo='Shougo/ddc-sorter_rank'
そして、.vimrc
に以下を追記します。
call ddc#custom#patch_global('sources', ['skkeleton'])
call ddc#custom#patch_global('sourceOptions', {
\ '_': {
\ 'matchers': ['matcher_head'],
\ 'sorters': ['sorter_rank']
\ },
\ 'skkeleton': {
\ 'mark': 'skkeleton',
\ 'matchers': ['skkeleton'],
\ 'sorters': []
\ },
\ })
これで、以下のような入力環境になります
最終的な設定は以下のようになります。
imap <C-j> <Plug>(skkeleton-toggle)
cmap <C-j> <Plug>(skkeleton-toggle)
call skkeleton#config({
\'eggLikeNewline':v:true
\})
call ddc#custom#patch_global('sources', ['skkeleton'])
call ddc#custom#patch_global('sourceOptions', {
\ '_': {
\ 'matchers': ['matcher_head'],
\ 'sorters': ['sorter_rank']
\ },
\ 'skkeleton': {
\ 'mark': 'skkeleton',
\ 'matchers': ['skkeleton'],
\ 'sorters': []
\ },
\ })
[[plugins]]
repo='vim-denops/denops.vim'
[[plugins]]
repo='vim-skk/denops-skkeleton.vim'
[[plugins]]
repo='Shougo/ddc.vim'
[[plugins]]
repo='Shougo/ddc-matcher_head'
[[plugins]]
repo='Shougo/ddc-sorter_rank'
まとめ
これで、vim上で日本語入力を行なえるようになりました。
Linuxでは最近あまりIMEが安定していません。ですが、これをいい機会として自分の好きなエディタで全ての日本語入力を行いませんか?
そうすれば、もっとエディタに愛着が湧き開発がさらに楽しくなると筆者は考えています。
Discussion