如何在Vim可视化模式下映射i键进入插入模式?
映射不生效原因及正确配置
原有配置失效的常见原因
- 符号转义错误:如果你的init.vim里写的是
<Esc>,这是HTML转义格式,Vim/Neovim无法识别,必须替换为原生的<Esc>符号 - 配置未生效:修改init.vim后需要执行
:source ~/.config/nvim/init.vim或者重启Neovim,配置才会生效 - 逻辑不符合预期:原有配置
xnoremap i <Esc>i的效果是退出可视化模式、保留选中内容再进入插入,不会删除已选中的文本,如果你需要的是替换选中内容的插入,原有逻辑本身不符合需求
正确配置方案
方案1:退出可视化,保留选中内容进入插入
xnoremap <silent> i <Esc>i
添加<silent>参数可以避免映射执行时在命令行输出冗余命令信息。
方案2:删除选中内容,直接进入插入(替换选中内容场景)
如果你的需求是按i后直接编辑选中的内容,直接映射到可视化模式的修改操作c即可,逻辑更简洁:
xnoremap <silent> i c
注意:该映射会覆盖可视化模式下i作为「内部文本对象」触发键的默认功能,如果你常用
viw(选中单词内部)、vi((选中括号内部)这类原生操作,建议更换其他闲置键位做映射,避免影响默认功能。
内容的提问来源于stack exchange,提问作者karmacollide
相关产品推荐
相关产品推荐

