分享一个 neovim 自动切换输入法的 lua 脚本

2023-04-07 15:03:48 +08:00
 yuancoder

使用了一段时间 rime 输入法, 这个输入法支持 vim 模式, 用起来还是挺方便的,但是打字效果太差了。
最后还是回归了原生的输入法,为了解决切换输入法的问题写了个 lua 脚本。
这里没有使用 im-select 是因为 im-select 在 mac 上切换会偶尔失效,所以我用了这个 macism

-- 记录当前输入法
Current_input_method = vim.fn.system("/usr/local/bin/macism")

-- 切换到英文输入法
function Switch_to_English_input_method()
    Current_input_method = vim.fn.system("/usr/local/bin/macism")
    if Current_input_method ~= "com.apple.keylayout.ABC\n" then
        vim.fn.system("/usr/local/bin/macism com.apple.keylayout.ABC")
    end
end

-- 设置输入法
function Set_input_method()
    if Current_input_method ~= "com.apple.keylayout.ABC\n" then
        vim.fn.system("/usr/local/bin/macism " .. string.gsub(Current_input_method, "\n", ""))
    end
end

-- 进入 normal 模式时切换为英文输入法
vim.cmd([[
augroup input_method
  autocmd!
  autocmd InsertEnter * :lua Set_input_method()
  autocmd InsertLeave * :lua Switch_to_English_input_method()
augroup END
]])


1648 次点击
所在节点    Vim
4 条回复
knightdf
2023-04-07 16:58:32 +08:00
mac 切换输入法不就按一下 cap 么,还需要搞这么复杂?
yuancoder
2023-04-07 17:39:09 +08:00
@knightdf #1 每次按 esc 之前需要多按一次 cap ,进入 insert 模式又要按一次,而且 hhkb 没有 cap 键
saikete
2023-05-18 12:04:22 +08:00
刚看了有人分享的 im-select 版就看到了老哥分享的 macism 版,hhhh ,支持,我也是刚刚搞好
houshuu
314 天前
im-select.nvim 的配置里把命令换成 macism 就非常好用了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/930590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX