IdeaVim能否切换模式时更改背景色?各模式独立设背景色
在IdeaVim中切换模式时更改背景色的方案
当然可以!这绝对是个比依赖闪烁光标靠谱得多的模式感知方案,我之前也因为光标闪烁没及时注意到模式踩过坑,特别理解你的需求。下面给你分享两种亲测有效的实现方式:
方法一:通过切换自定义配色方案实现(最直观)
这种方法是给Normal和Insert模式分别配置一套配色,切换模式时自动切换配色:
- 第一步:先在你的IntelliJ系IDE(IDEA/PyCharm等)里创建两个自定义配色:
- 打开
File > Settings > Editor > Color Scheme,复制你当前正在使用的配色方案,命名为NormalMode(保持你习惯的背景色即可) - 再复制一份当前配色,命名为
InsertMode,然后修改它的Editor > Background颜色为你想要的区分色(比如比Normal模式亮一点或暗一点的色调,只要能一眼区分开就行)
- 打开
- 第二步:打开你的
.ideavimrc配置文件(如果没有就自己创建一个,通常在用户根目录下),添加以下代码:
这里的" 进入Insert模式时自动切换到InsertMode配色 autocmd InsertEnter * :action ActivateColorScheme<CR>InsertMode " 退出Insert模式回到Normal时切换回NormalMode配色 autocmd InsertLeave * :action ActivateColorScheme<CR>NormalMode:action是IdeaVim调用IDE内置功能的命令,ActivateColorScheme就是IDE切换配色的动作,后面跟你刚才创建的配色名称,注意大小写要完全匹配。
方法二:轻量修改背景色(无需切换整套配色)
如果你不想折腾整套配色,只想单独改背景色,可以用IDE的内置设置命令配合IdeaVim的自动命令:
在.ideavimrc里添加类似这样的配置(颜色值可以换成你喜欢的RGB或十六进制值):
" 进入Insert模式时设置背景色为浅灰色 autocmd InsertEnter * :action EditorBackgroundColor<CR>#f5f5f5 " 回到Normal模式时恢复原背景色(这里换成你原来的背景色值) autocmd InsertLeave * :action EditorBackgroundColor<CR>#2b2b2b
不过要注意,这种方法可能在部分IDE版本里对某些主题的兼容性稍差,不如第一种方案稳定。
小提示
- 配置完
.ideavimrc后,记得在IDE里执行:source ~/.ideavimrc让配置生效,或者重启一下IDE - 配色名称一定要和你创建的完全一致,大小写敏感,不然切换会失效
这样设置后,每次切换模式背景色都会立刻变化,再也不用盯着闪烁的光标猜当前模式啦!
内容的提问来源于stack exchange,提问作者Toskan
相关产品推荐
相关产品推荐

