コンテンツにスキップ

Vim・Neovim

kanaemi-mode は、Vim や Neovim から Kanaemi のモードを読んだり、変えたり、変わったときに知らせを受け取ったりするプラグインです。中では 外からの操作 を使っています。

Vim(+channel と +timers)と Neovim で動きます。

Kanaemi の 設定ファイル に、待つポートを書きます。

[control]
port = 50123

同じポートをプラグインに教えます。

let g:kanaemi_mode_port = 50123

挿入モードを抜けたら ABC にする

Section titled “挿入モードを抜けたら ABC にする”

ノーマルモードに戻ったとき、かなモードのままでコマンドが打てなくなるのを防ぎます。

autocmd InsertLeave * silent! call kanaemi_mode#set_mode('abc')

ステータスラインにモードを出す

Section titled “ステータスラインにモードを出す”
function! s:on_mode(mode) abort
let g:ime_mode = a:mode
redrawstatus
endfunction
let g:ime_mode = v:null
silent! let g:ime_mode = kanaemi_mode#get_mode()
call kanaemi_mode#watch_mode(function('s:on_mode'))
set statusline+=%{g:ime_mode\ is#\ 'kana'\ ?\ '[あ]'\ :\ ''}
関数 すること
kanaemi_mode#get_mode() フォーカスのある入力欄のモードを返す
kanaemi_mode#set_mode(mode) モードを mode にし、変えたあとのモードを返す
kanaemi_mode#watch_mode({ mode -> ... }) モードが変わるたびに呼ぶ。呼ぶとやめる関数を返す

うまくいかないときは kanaemi_mode: で始まる例外を投げます。詳しくは :help kanaemi-mode を見てください。

変数 既定値 内容
g:kanaemi_mode_port なし Kanaemi が待つポート
g:kanaemi_mode_timeout 1000 つなぐとき、答えを待つときに待つ長さ(ミリ秒)
g:kanaemi_mode_reconnect_interval 5000 知らせを待っているあいだに接続が切れたとき、つなぎ直す間隔(ミリ秒)