はじめに
Neovimに入門してみました。
- Insertモードで日本語で入力
-
EscキーでNormalモードへ変更 - カーソル移動
この時、IMEを英字にしていないとカーソル移動が機能しません。
カーソル移動がスムーズにできないストレスを地味に感じていたので、解決方法をまとめました。
問題
日本語で文字入力→EscキーでNormalモードに戻る→カーソル移動でhjklを押した時に
画像のようになる
解決方法
im-selectを導入する
https://github.com/daipeihust/im-select
macの場合
brew tap daipeihust/tap
brew install im-select
- 英字モードの時
❯ im-select
com.apple.keylayout.ABC
- 日本語入力の時
❯ im-select
com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese
- IME切り替えをim-selectコマンドでできる
#現在のIMEを確認
❯ im-select
com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese
# 英字入力に変更
❯ im-select com.apple.keylayout.ABC
#現在のIMEを確認
❯ im-select
com.apple.keylayout.ABC
この切り替えコマンドを利用し、nvimでEscキーを押した時に英字になるように設定します。
.config/nvim/lua/config/autocmds.luaに以下のコードを追加
autocmds.lua
vim.api.nvim_create_autocmd("InsertLeave", {
callback = function()
os.execute("im-select com.apple.keylayout.ABC")
end,
})
InsertLeaveはインサートモードを抜けた時に発火するイベントです。
これを利用して、EscキーでNormalモードに戻ったタイミングで英字入力に切り替えできます。
おわりに
余談ですが、Claude Codeで指示を出す時も快適になりました。
.zshrcにexport EDITOR='nvim'を設定するとCtrl + gでエディタから指示を出せるので少し楽になりました。
