如何在Vim中将u映射为双引号,实现ciu等效ci"功能
Vim实现
ciu等效ci"的配置方法 要让ciu达到和ci"完全一样的效果,你需要给双引号文本对象创建单字符别名,直接在.vimrc或init.vim里添加以下两行映射即可:
onoremap u " xnoremap u "
为什么之前的omap u \"无效?
omap仅作用于操作符等待模式,但ci"这类操作是**操作符(c)+ 文本对象(")**的组合,文本对象的映射需要同时覆盖操作符-待决模式和可视化模式。onoremap负责处理操作符等待时的文本对象调用,xnoremap负责可视化模式下选中文本对象,两者配合才能让u完全替代"作为双引号文本对象的别名。
验证效果
光标放在println("Hello world!")的双引号内或任意相邻位置,按下ciu,双引号内的内容会被快速清空,直接变成println(""),和执行ci"的结果完全一致。
内容的提问来源于stack exchange,提问作者Dai Even
相关产品推荐
相关产品推荐

