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

2023-05-16

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 <esc>

中文输入法本身就无法使用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 <C-c> <esc>

总结

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

宏问题

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

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

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

"临时禁用输入法切换插件,可以极大提升宏运行的效率
nnoremap <silent><leader>s0 <cmd>let g:smartim_disable = 1<CR>
"开启输入法切换插件
nnoremap <silent><leader>s1 <cmd>let g:smartim_disable = 0<CR>

参考文献

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • oracle11整库导出导入

    DIRECTORY 首次需要创建 xff0c 一劳永逸 xff01 使用EXPDP工具时 其转储文件只能被存放在DIRECTORY对象对应的OS目录中 而不能直接指定转储文件所在的OS目录 因此 使用EXPDP工具时 必须首先建立DIREC
  • 腾讯大王卡免流手机投屏电视看春晚

    前言 过年回老家了 xff0c 因为我不在家的时候宽带使用频率很低 xff0c 老家的宽带到期就没有续啦 没有网家里的电视就是摆设啦 为了除夕能大家在电视上看春晚 xff0c 这篇文章就来了 虽然没有家庭宽带 xff0c 但是大家现在的手机
  • CentOS7安装ZSH终端

    安装zsh和git git用于pull代码 yum span class token function install span y zsh span class token function git span 切换使用zsh 查 zsh位
  • CentOS7离线安装Oh My ZSH

    前言 Oh My ZSH真香 xff0c 我一开始是在macOS中使用 xff0c 使用习惯了ssh远程我的服务器反而不习惯了 毕竟从奢入俭难 那么如何在CentOS中安装Oh My ZSH呢 xff1f 网上教程挺多的 xff0c 但是我
  • CentOS7安装Oh My ZSH解决raw.github.com访问不畅

    前言 Oh My ZSH真香 xff0c 我一开始是在macOS中使用 xff0c 使用习惯了ssh远程我的服务器反而不习惯了 毕竟从奢入俭难 那么如何在CentOS中安装Oh My ZSH呢 xff1f 网上教程挺多的 xff0c 但是我
  • 玩转手机中的linux系统termux并搭建java开发环境

    目标 春节在家 xff0c 偶尔要出门在外 出门在外的时候 xff0c 没有电脑可以写代码 那么代码瘾上来了怎么办呢 xff1f 我在想能不能在手机上写代码呢 xff1f 手机远程电脑是一种方式 xff0c 但是远程开发这种方式 xff0c
  • ubuntu安装zsh

    更新一下 apt span class token operator span get update 安装zsh apt span class token operator span get install zsh 切换使用zsh 查 zs
  • macOS使用SpaceVim配置java开发环境爬坑

    我在ubuntu中配置SpaceVim开发环境 xff0c 还算顺利 但是在macOS下面搭建java的环境时却遇到点小坑 报错网上貌似也没有搜索到 配置java开发环境时报错 报错信息的一部分 xff1a Error from Langu
  • macOS中SpaceVim搭建java开发环境

    安装JDK11 过程略 xff0c 可参考 xff1a https blog csdn net lxyoucan article details 111120215 macOS安装支持Python 3的neovim 为什么不用 vim 因为
  • Vim用来当SQL Server Client?

    最近迷上了Vim 了 xff0c 感觉它有无穷无尽的玩法 那么它可以用来简单的查oracle 数据库吗 xff1f 因为有一些现场只有ssh远程 xff0c 如果直接在命令行 sqlplus用来查 xff0c 总感觉体验不是很好 如果可以使
  • 荣耀MagicBook2019+Manjaro20.1KDE初始设置一文流

    荣耀魔法书2019 43 Manjaro20 1KDE初始设置一文流 文章目录 荣耀魔法书2019 43 Manjaro20 1KDE初始设置一文流写在前面为什么要在博客记录本文 配置源和系统更新修改源排名添加archlinux仓库安装ya
  • Oracle修改密码

    sysdba登录 sqlplus nolog conn as sysdba 修改system密码为manager SQL span class token operator gt span alter user system identif
  • oracle查用户列表

    sysdba登录 sqlplus nolog conn as sysdba 查看用户列表 xff1a SQL span class token operator gt span span class token keyword select
  • macOS中配置oracle客户端与sqlplus

    下载 官网下载地址 xff1a https www oracle com database technologies instant client macos intel x86 downloads html 下载自己需要的版本的 个人建议
  • Sqlplus替代者SQLcl

    图形化的Oracle客户端工具很多 xff0c 比如 xff1a PL SQL 在命令行的查询工具SQLplus大家应该都知道的 说真的我在用SQLplus的时候感觉真难受啊 勉强能用 修改SQL或者查看历史语句都不行 xff0c 放方向键
  • Windows 10 LTSC官方版本下载地址

    原版下载地址 64位 xff1a ed2k file cn windows 10 enterprise ltsc 2019 x64 dvd d17070a8 iso 4290967552 9E80DED85693E8E4E0D76E55B1
  • MacVim永久保存字体设置

    不知道有没有小伙伴 xff0c 跟我一样 很疑惑为什么MacVim中的设置每次重新打开就会重置 每次重新打开我就要设置一下MacVim的字体和字体大小来正常显示我的powerline字体 这样就很麻烦了 xff0c 有没有什么办法可以永久保
  • CentOS 安装vim8 + python3

    前言 CentOS 使用yum 安装的vim版本比较低 xff0c 有一些vim插件都要求vim 8 43 的版本 所以我们还是需要安装一下新版本的 步骤 卸载原来的vim yum remove vim 安装依赖关系 yum install
  • Centos安装nvim并支持python3

    在使用SpaceVim 官方推荐使用neovim xff0c 那咱就安装一个呗 下载安装包 https github com neovim neovim releases latest 我这里下载的是 xff1a 安装 root权限执行以下
  • macOS下vim 中文输入法切换问题和两种解决方案

    vim好用是好用 xff0c 就是跟中文输入法配合的不算太好 有没有什么解决办法呢 xff1f 我今天就尝试解决一下 先上效果 xff1a 方法一 xff1a xkbswitch macosx安装过程 解决恼人的 vim 中文输入法切换问题