据我了解,w
通过将文本分成3组来识别单词边界:
1)iskeyword
设置中指定的字符(字母,数字和下划线)
2)其他不可打印的字符(符号)
3)空格字符
每次按下w
,它都会转到下一组1或组2.我想自定义它,只会转到下一组1,跳过“符号字”。
这几乎有用:
nnoremap w /\k\+<CR>
使用iskeyword
字符类\k
。但它很难看,因为它模拟我进行搜索,这会改变我的突出显示,使我的搜索历史变得混乱,谁知道还有什么。是否可以像w
命令一样“干净地”完成这项工作?
答案 0 :(得分:3)
我认为您正在寻找operator pending mode,a.k.a xmap, smap
和家人。
我已经完成了这些in other answers on SO的一些例子:
最相关的例子可能是
您还会发现一些相似但可能对您有用的技术
答案 1 :(得分:0)
我在这里可能没什么帮助..我甚至不知道\k
在这种情况下的含义,但你可以解决你提出的两个直接问题:
nnoremap w /\k\+<CR>:nohl<CR>:call histdel("search", -1)<CR>
它很难看,突出显示可能会闪烁,但也许这会指向正确的方向。