macOS下vim 中文输入法切换问题和两种解决方案

您所在的位置:网站首页 苹果mac五笔输入法怎么切换 macOS下vim 中文输入法切换问题和两种解决方案

macOS下vim 中文输入法切换问题和两种解决方案

2024-05-31 05:35| 来源: 网络整理| 查看: 265

vim好用是好用,就是跟中文输入法配合的不算太好。有没有什么解决办法呢?我今天就尝试解决一下。

先上效果: 在这里插入图片描述

方法一:xkbswitch-macosx安装过程

《解决恼人的 vim 中文输入法切换问题[视频]》https://zhuanlan.zhihu.com/p/49411224 这个教程写的很详细,大家直接看这个就好了。我只是记录一下我的解决过程。 mac 下直接 5 步走

git clone https://github.com/myshov/xkbswitch-macosx cp xkbswitch-macosx/bin/xkbswitch /usr/local/bin git clone https://github.com/myshov/libxkbswitch-macosx cp libxkbswitch-macosx/bin/libxkbswitch.dylib /usr/local/lib/

第5步安装插件,不同的插件管理器大同小异。 install plugin 以 Vundle插件管理器为例

Plugin 'lyokha/vim-xkbswitch'

设置完成后,重启vim 输入:PluginInstall

插件安装完成后,重启 vim。 然后 :EnableXkbSwitch开启自动切换输入法功能。实测可以正常使用。

我的环境如下:

项目~操作系统macOS Big Sur 11.2输入法简体五笔 (系统自带) 体验感受 输入法切换有卡顿不支持 ctrl -c 切 普通模式的方式有用,希望能更好用 按Esc或者Ctrl - [切换普通模式(正常)

插入模式,按Esc 切换 到普通模式,这里系统输入法自动进入英文模式(有一些延迟,但是影响不大)。在普通模式按i进入插入模式会自动切换到中文输入法。

按Ctrl - c切换普通模式(无效)

为什么我知道按ctrl -c 不正常,因为我平时就是按这个快捷键切换普通模式的,难受啊,要我改变切换习惯吗?🥺

jk 替换Esc方案 inoremap jk

中文输入法本身就无法使用jk切换Esc,所以没有影响。

方法二:ybian/smartim

项目主页:https://github.com/ybian/smartim 安装方法以Vundle为例

加入一行到 ~/.vimrc 文件:

Plugin 'ybian/smartim'

vim中运行 :PluginInstall

SmartIM假定您的默认键盘是美国英语(com.apple.keylayout.US)。如果要更改此设置,请将以下行添加到您的.vimrc:

在~/.vimrc 设置默认要切换到的输入法。我的设置如下:

" 设置normal模式切换到的输入法 let g:smartim_default = 'com.apple.keylayout.ABC'

这个输入法名称是如何获取到的?执行 im-select即可得到。

~/.vim/bundle/smartim/plugin/im-select com.apple.keylayout.ABC 使用体验 安装简单方便,基本 2步就搞定了仅支持macOS系统使用效果跟上面的xkbswitch几乎没有区别,支持Esc,Ctrl - [但是不支持Ctrl - c 不支持Ctrl - c的解决办法

我本想为了这个中文输入,改掉我按Ctrl - c 替换Esc的习惯的,后来一想我直接把 Ctrl - c映射成Esc不就搞定了吗?实测还真行。这下就可以接近完美啦!

在~/.vimrc 加入以下配置。

" ctrl-c 映射到 esc inoremap 总结

我个人更喜欢 ybian/smartim,因为安装简单方便,不需要安装其他的库。主要不往系统目录复制东西,感觉更绿色,方便复制到其他电脑上使用。

宏问题

2021年03月15日 如果宏里有插入模式与普通模式之间切换的,会导致宏运行的非常的慢。一个简单的宏没这个插件基本上1秒完成,有这个插件基本就要几十秒。

今天在运行宏的时间遇到问题了,只要在录制的宏中用普通模式和插件模式切换的,在运行宏的时候会发现宏运行的非常慢,很卡。而且还会导致宏运行不起来。这个就很有影响了。

2021年11月11日 我在关棍节找到了解决办法,就是如果需要使用宏的时候把这个插件临时禁用一下就好了。 我的配置如下:

"临时禁用输入法切换插件,可以极大提升宏运行的效率 nnoremap s0 let g:smartim_disable = 1 "开启输入法切换插件 nnoremap s1 let g:smartim_disable = 0 参考文献

《解决恼人的 vim 中文输入法切换问题[视频]》https://zhuanlan.zhihu.com/p/49411224



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3