繁体   English   中英

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

[英]In vim, how do I make a custom word boundary motion?

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

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

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

3)空白字符

每次按w都会转到下一组1或组2.我想自定义它,这样它只会转到下一组1,跳过“符号字”。

几乎有用的是:

nnoremap w /\\k\\+<CR>

它使用iskeyword字符类\\k 但它很难看,因为它模拟我进行搜索,这会改变我的突出显示,使我的搜索历史变得混乱,谁知道还有什么。 有没有办法像w命令一样“干净”地完成这项工作?

我认为你正在寻找运营商挂起模式 ,即xmap, smap和family。

在SO的其他答案中做了一些这些例子:

最相关的例子可能是

您还会发现一些类似的技术,可能对您有用

我在这里可能没什么帮助..我甚至不知道在这种情况下\\k含义是什么,但你可以解决你提出的两个直接问题:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM