LazyVim の誤操作を防ぐためにノーマルモードで入力メソッドを無効にします。
環境
・Omarchy v3.0.2
・LazyVim
・fcitx5-im, fcitx5-mozc-ut
下記の要領で入力メソッドを制御します。
・挿入モードを抜けるとき、入力メソッドを無効にする。
・挿入モードでの入力メソッド名を保存する。
・挿入モードを開始したとき、保存した名前を設定する。
~/.config/nvim/lua/custom/fcitx5-remote.lua にファイルを作成します。
local function trim(s)
  return s:match("^%s*(.-)%s*$")
end
local function getMethodName()
  local result = ""
  local handle = io.popen("fcitx5-remote -n") -- Get current input method name
  if handle ~= nil then
    result = trim(handle:read("*a"))
    handle:close()
  end
  return result
end
vim.g.fcitx_input_method_name = getMethodName()
local function onInsertLeave()
  vim.g.fcitx_input_method_name = getMethodName()
  os.execute("fcitx5-remote -c") -- inactivate input method
end
vim.api.nvim_create_autocmd("InsertLeave", {
  callback = onInsertLeave,
})
local function Restore(fcitx_input_method_name)
  if fcitx_input_method_name ~= "keyboard-us" then
    os.execute("fcitx5-remote -o") -- activate input method
  end
end
vim.api.nvim_create_autocmd("InsertEnter", {
  callback = function()
    Restore(vim.g.fcitx_input_method_name)
  end,
})
~/.config/nvim/init.lua で作成したファイルを require します。
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")
require("custom.fcitx5-remote")以上です。
▼この記事がいいね!と思ったらブックマークお願いします

