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")
以上です。
▼この記事がいいね!と思ったらブックマークお願いします
