Vim 默认不提供 CamelCase 单词文本对象,所以我们必须
由我们自己创造。好消息是我们不需要重新发明轮子
因为一个插件已经存在,我们可以使用它作为基础:camelCaseMotion
这个脚本定义了动作,w、,b和,e(类似于w、b、e),它们不会逐字移动(向前/向后),但是 Camel-明智的;即单词边界和大写字母。问题是它不
定义一个类似于iw 的文本对象来选择整个单词。所以让我们创建
它:
为了完整起见,一个文本对象需要两个定义:一个用于可视模式,另一个用于
另一个用于操作员挂起模式。这是我们的定义(添加到
.vimrc):
vmap ,i <Esc>l,bv,e
omap ,i :normal v,i<CR>
如您所见,我们使用了插件定义的,b 和,e 动作。
第一个定义允许我们在可视模式下输入,i,它会
选择当前的“inner camelCase word”。 (l 运动是一种始终获取光标所在单词的解决方法。否则,当光标位于单词的第一个字母时,我们会得到前一个)
第二个定义使用第一个
一种让d 或c 等运营商与,i 一起工作
在我们安装插件并将定义添加到我们的.vimrc 之后
我们可以做你想做的。例如,如果我举这个例子:
DefaultHandlerWord
如果我的光标在Handler 的字母n 上,我可以使用:
-
,e 转至Handler 的最后一个字母
-
,b去Handler的第一个字母
-
,w去Word的第一个字母
-
d,i 删除 Handler 并仅获取 DefaultWord
-
c,i 删除 Hanlder 并有机会用另一个词替换它