LinuxでもVimを使った日本語入力を行いたい。
記事を書いた目的
日本語のテキストファイルを作成する際にもvimを使いたいから。
- vimを使って日本語入力をする際にネックになるのはノーマルモードからinsertモードに変更した際にいちいち半角を全角に戻す必要があってそれが面倒くさい。
- 日本語入力協調モードというのを使うとEscをモード切り替え時にうまいこと入力方式を切り替えてくれる。
- しかし、Linuxでも日本語入力協調モードを使った快適な日本語入力を行う機能がデフォルトのvimにはない。(私が調べた限りではUbuntu 18.04,Centos-7のgvimにはデフォルトで日本語入力協調モードの機能がありませんでした.)
- linuxでも快適な日本語入力をvimを使って行いたい!!!!!!
対象読者
- vimを使って小説を書きたい方。
- vimを使ってレポートや論文の文章を作りたい方。
- vimに興味がある方。
動作環境
- 使用OS→ubunt18.04
- vimのバージョン→Vi IMproved 8.0 (2016 Sep 12, compiled Mar 18 2020 18:29:15)
- ibus
行ったこと
1. プラグインを入れて日本語入力協調モードを使えるようにする。
- 以下のサイトを参考にして設定を行いました。
大まかな作業手順
-
プラグインのダウンロード
日本語入力プラグインからダウンロードし、ファイルを展開します。 -
パスの設定
先程ダウンロードしたディレクトリのうち必要なのはim_control.vim-masterです。このファイルを配置したパスを通す為にvimrcに以下の文を追加します。私は/home/user/vimjp/im_control.vim-masterのように配置したので以下のように設定しました。
set runtimepath+=/home/user/vimjp/im_control.vim-master
- ibus engineを使って入力方式が変更できるようにする。
同サイトに詳しく書いてありますが、ざっくりいうとモード切り替え時にibus engineというコマンドを実行して入力方式を変更できるようにvimrcに以下の文を設定します。
" 「日本語入力固定モード」の動作モード
let IM_CtrlMode = 1
" 「日本語入力固定モード」切替キー
inoremap <silent> <C-j> <C-r>=IMState('FixMode')<CR>
" IBus 1.5以降
function! IMCtrl(cmd)
let cmd = a:cmd
if cmd == 'On'
let res = system('ibus engine "mozc-jp"')
elseif cmd == 'Off'
let res = system('ibus engine "xkb:jp::jpn"')
endif
return ''
endfunction
" <ESC>押下後のIM切替開始までの反応が遅い場合はttimeoutlenを短く設定してみてください。
" IMCtrl()のsystem()コマンド実行時に&を付けて非同期で実行するという方法でも体感速度が上がる場合があります。
set timeout timeoutlen=3000 ttimeoutlen=100
この状態でinsertモードでCtrl-jを実行すると日本語入力協調モードが起動します。
うまく起動しないばあいにはきちんとパスが通っているか確認してみてください。
2. vim終了時に入力方式をmozcに戻す。
これで日本語入力協調モードが使えるようになりましたが、面倒なことがあります。
それは、**vim終了時に入力方式がjapanese(アルファベットオンリーしか使えない)**状態になってしまうことです。
これを変更するには、Windowskey-spaceを使ってmozcに切り替える必要があります。正直これが面倒!!!
そこでvimを終了時にmozcに入力方式を戻せるようにしたいと思います。
作業内容
- 環境変数PATHに登録するパスを増やします。bashrcに以下の内容を記述してください。
PATH=$PATH":/home/user/bash"
これでPATHにbashというディレクトリのパスが追加されたので/bash内のシェルスクリプトをどのディレクトリからも実行することができるようになりました。
- bashにvimというファイルを作る
/home/user/bash/vimというファイルを作り以下のように記述します。
#!/bin/bash↲
/usr/bin/vim "$@"
ibus engine "mozc-jp"
- 実行権限を付与
/home/user/bash/vimに実行権限を付与します。
chmod 744 /home/user/bash/vim
- エイリアスの追加
vimというコマンドを実行した際にそのままvimがバイナリから起動するのではなく/home/user/bash/vimを通してvimが立ち上がるように設定します。
bashrcに以下の文を追加してください。
alias vim='/home/tomita/bash/vim'
これでvimを終了時に入力方式をmozcに戻すことができました。