企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## vim 在退出输入模式的时候切换为原来的输入法 在敲代码的时候使用我们使用的英文,当遇到问题,我们需要搜索引擎的时候需要中文输入法,这个时候,自动切换输入法可以帮助我们节省手动切换输入法的时间。 跟编辑器结合,主要是两种编辑器,一个是 `idea` 一个是 `vscode` ## 在idea中使用 vim 插件: * IdeaVim * IdeaVimExtension 我们需要在 用户目录下创建 `.ideavimrc` 文件, 并输入以下内容 ```shell set keep-english-in-normal set keep-english-in-normal-and-restore-in-insert ``` ``` $ source ~/.ideavimrc ``` 重启 `idea` 可以看到效果了。 IdeaVimExtension插件的文档: 为`IdeaVim`插件增加自动切换为英文输入法的功能 输入法自动切换功能不会默认启用 编辑器中normal模式下输入输入下面的指令以启用自动切换输入法功能: ``` :set keep-english-in-normal 开启输入法自动切换功能 :set keep-english-in-normal-and-restore-in-insert 回到insert模式时恢复输入法 :set nokeep-english-in-normal-and-restore-in-insert 保留输入法自动切换功能,但是回到insert模式不恢复输入法 :set nokeep-english-in-normal 关闭输入法自动切换功能 ``` 也可以通过将`set keep-english-in-normal[-and-restore-in-insert]`加入到`~/.ideavimrc`文件中并重启IDE来启用插件功能。 注意:支持MacOS和Windows, 通过fcitx-remote支持Linux MacOS需要开启英语美国键盘或ABC键盘 Windows需要开启英语美国键盘 Linux需要使用fcitx输入法,通过fcitx-remote切换 在macOS中,normal模式的输入法可以通过`keep_input_source_in_normal` 来设置,例如`let keep_input_source_in_normal="com.apple.keylayout.ABC"` ## 在vscode中使用 vim 参考 vscode 插件: https://github.com/VSCodeVim/Vim#input-method ### 环境 * mac * 下载 vscodevim插件 * im-select ### 安装 im-select ``` $ git clone https://github.com.cnpmjs.org/daipeihust/im-select.git $ mv im-select/im-select-mac/out/im-select /usr/local/bin/ $ chmod 777 /usr/local/bin/im-select ``` 查看当前输入法 ``` $ /usr/local/bin/im-select com.apple.keylayout.ABC ``` ### 全局配置 settings.json ``` "vim.autoSwitchInputMethod.enable": true, "vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC", "vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select", "vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}" ``` settings.json 参数解析: |参数| 解析 | |--|--| | vim.autoSwitchInputMethod.enable| 控制是否自动切换| | vim.autoSwitchInputMethod.defaultIM| 默认的输入法,其实就是在Normal模式下需要输入法| | vim.autoSwitchInputMethod.obtainIMCmd| 获得当前输入法的命令| | vim.autoSwitchInputMethod.switchIMCmd| 切换输入法的命令,{im}代表要切换到输入法名,其实就是设置的defaultIM| 至此 vscode vim 自动切换输入法就完成了。