有馬総一郎のブログ

(彼氏の事情)

2022年02月16日 00:15:08 JST - 4 minute read - Vim

Windowsで'vim-skk/skkeleton'を使う

無事、 WindowsにNeovim-qtを導入したので、 vim-skk/skkeletonをインストールして使うことにした。

WindowsでのdenoのインストールはPowerShelliwr https://deno.land/install.ps1 -useb | iexと叩くだけ。パス設定も自動で行われる。

PS C:\Users\Arimasou16> iwr https://deno.land/install.ps1 -useb | iex
Deno was installed successfully to C:\Users\Arimasou16\.deno\bin\deno.exe
Run 'deno --help' to get started
PS C:\Users\Arimasou16> deno
Deno 1.18.1
exit using ctrl+d or close()

そして、vimからdenoを使うために vim-denops/denops.vimプラグインも必須。

使い方は難しいところは無いと思う。SKK辞書サーバーの設定もできるのは嬉しい。

" 有効、無効を切り替え
imap <C-j> <Plug>(skkeleton-toggle)
cmap <C-j> <Plug>(skkeleton-toggle)
call skkeleton#config({
  \'globalJisyo':"~/Appdata/Roaming/SKKFEP/DICTS/SKK-JISYO.L",
  \'userJisyo':"~/.skkeleton",
\})
call skkeleton#config({
  \'eggLikeNewline':v:true,
  \'keepState':v:true,
  \'useSkkServer':v:true,
  \'skkServerHost':"127.0.0.1",
  \'skkServerPort':1178,
  \'skkServerResEnc':"euc-jp",
  \'skkServerReqEnc':"euc-jp",
\})

受信、送信をUTF-8で変換することも出来るけど、他のIMでも確実に使えるようにEUC-JPで使ってる。

WindowsでのSKK辞書サーバー

Linux系では wachikun/yaskkserv2を使っているが、Windowsでは SKK日本語入力FEPを使っていたので、特にSKK辞書サーバーを設定していなかった1

SKK辞書サーバーがないと、 vim-skk/skkeletonを使っているときに少し不便なので nathancorvussolis/crvskkservを落してきて、shell:startupにショートカットを自動起動させるようにした。これでほぼLinuxで vim-skk/skkeletonを使っているときと同じ感じになる。

crvskkserv
crvskkserv
crvskkserv

Neovim-qt起動時にIMEオフにする

前回の記事で、ちらっと触れたが、Neovim-qtを起動したとき、IMEは無効になってほしい。

nathancorvussolis/corvusskkでは、アプリを起動したときは、IMEは無効になった状態で起動されるが、 SKK日本語入力FEPでは有効になって起動してしまう。

普段はその方がありがたいのだけど、Neovim-qtにおいては嬉しくない。vimで制御するのは難しそうだったので SKK日本語入力FEPを見ると、

起動時の変換モード (mオプション)
 標準では半角英数モードになっています。以下から起動時のモードを選択可能です。

m0: ひらがな m1: カタカナ m2: 半角カナ
m3: 全角英数 m4: 半角英数 m5: IMEオフ
md: 半角英数 (標準設定)

と起動時の変換モード、IMEのオフが指定できることが書いてあったので、 SETUP.js からコマンドを選択するかskkrule.exeが置いてあるフォルダまで移動してコマンドプロンプトを起動させてskkrule nvim-qt.exe m5と叩けば、Neovim-qt起動時にIMEが無効となる。

SKK日本語入力FEP
日本語入力システムSKKFEP零式
使用法: skkrule [動作指定]
        r または txt名  キー操作と表示形式
        p 値    表示形式 0:標準 9:▼表示 4:最小限
        c       表示色
        f       フォント選択
        w 幅 [影 [濃度]]        表示領域
        m 値    入力モード 0:ひらがな 4:標準 5:IMEオフ +64:モード表示
        s 値    シフトキー拡張(SandS)
        exe名   アプリ個別設定
        rd pd cd wd md sd:設定消去 ad:アプリ設定消去
使用例: skkrule emacs.exe m5    アプリ起動時IMEオフ

アプリ再起動または入力言語の切り替え後に設定が反映されます

検索の完了: 該当 0 件

C:\Users\Arimasou16\Downloads\skkfep012_20190506>skkrule nvim-qt.exe m5 s0
入力モードnvim-qt.exeの設定を変更しました
シフトキー拡張nvim-qt.exeの設定を変更しました

C:\Users\Arimasou16\Downloads\skkfep012_20190506>

この事にヒント?と得た私はLinuxではcall system('fcitx5-remote -c')fcitx5が有効時、実行するようにして、同じような挙動になるようにした。

SandS (Space and Shift)という設定

しかし、ここ他のオプション見てて初めて知ったのだけど、 SandS (Space and Shift) いろんなプラットフォームでのやり方 - unknownplace.orgという、Spaceキーと別のキーを同時押しした際にSpaceキーがShiftキーになるという設定をしてskkを使う人がいるんだなぁ。へー。

リンク先の言うとおり SKK日本語入力FEPは元より組込まれていて、 Windows で SandS (Space and Shift) を使うためのソフト「SandSExe」 | PCの歯車というソフトを使えば nathancorvussolis/corvusskkでも SandS が使えるようになる。うーん、そんなに小指使っててシンドいと思ったことないんだけどなぁ。SKKは奥が深いね。


  1. 機能拡張スクリプトと呼ばれるSKKGateを導入することでオンライン変換が出来る。 SKK日本語入力FEP 今だ!インストールだ! ↩︎