如何在Vim可视模式下禁用小写转换的u映射且不影响撤销?
如何仅禁用Vim可视模式下的小写转换映射(保留普通模式撤销)
嘿,这个细节抓得太准了——直接用:unmap u确实会把普通模式里救命的撤销功能也一起禁用,这绝对是我们要避免的。
解决方法其实很简单,Vim的映射是分模式的,我们只需要针对可视模式单独解除u的映射就行:
- 在你的
.vimrc(或者init.vim如果你用Neovim)里添加这一行:vunmap u - 保存文件后,要么重启Vim,要么在Vim里执行
:source ~/.vimrc让修改生效。
为什么这能行?
vunmap是专门针对可视模式(包括字符可视、行可视、块可视三种子模式)的解除映射命令,只会影响你选中文本后的操作- 普通模式下的
u(撤销上一次修改)完全不受影响,该怎么用还是怎么用
额外小技巧
如果你想确认是否成功禁用了可视模式的u,可以在Vim里输入:vmap u:
- 如果返回
No mapping found,就说明已经生效了; - 如果之前有映射,会显示原来的绑定内容。
另外,如果你担心之后有插件或者其他配置重新给可视模式的u绑定功能,也可以用更“强硬”的方式把它映射到空操作:
vnoremap u <Nop>
效果和vunmap一样,但<Nop>(No Operation)会强制让可视模式下按u什么都不做,彻底杜绝误触发。
内容的提问来源于stack exchange,提问作者HBat
相关产品推荐
相关产品推荐

