在vim中,如何进行自定义单词边界运动?

Ein*_*Ein 5 vim search boundary cpu-word motion

据我所知,w通过将文本分成3组来识别单词边界:

1)iskeyword设置中指定的字符(字母,数字和下划线)

2)其他不可打印的字符(符号)

3)空白字符

每次按下w它都会转到下一组1或组2.我想自定义它,因此它只会转到下一组1,跳过"符号字".

几乎有用的是:

nnoremap w /\k\+<CR>

它使用了iskeyword字符类\k.但它很难看,因为它模拟我进行搜索,这会改变我的突出显示,使我的搜索历史变得混乱,谁知道还有什么.有没有办法让这项工作"干净利落",就像w通常的命令一样?

Exp*_*lls 1

我在这里可能没有多大帮助..我什至不知道\k在这种情况下意味着什么,但您可以解决您提出的两个直接问题:

nnoremap w /\k\+<CR>:nohl<CR>:call histdel("search", -1)<CR>
Run Code Online (Sandbox Code Playgroud)

它很丑陋,并且突出显示可能会闪烁,但这也许会为您指明正确的方向。