无法弄清楚如何在可视模式下自动选择正则表达式匹配。
例如,手动,我可以搜索单词
/word
将光标置于匹配“word”的第一个字符上
然后我按v
进入可视模式,然后按llll
选择整个“单词”。
现在我想用宏来做这件事,我不知道比赛的长度。
我预计Vim会在当前比赛的开始和结束时自动定义一些内置标记,这样我就可以了。但我找不到任何相关信息。
我想要的是将Ctrl+n
重新分配给一个宏来带我到下一场比赛并在视觉模式中选择它,即不只是突出显示匹配。 (与n
将你带到下一场比赛的方式相同。)
如果你想知道原因,那是因为我想根据正则表达式匹配创建折叠(例如Ctrl+n
,zf
),但我相信它在其他情况下也会派上用场
答案 0 :(得分:7)
// e将您带到上次搜索的结束字符。 更多信息 - :help {offset}。
您可以找到如何恢复旧搜索缓冲区here。
答案 1 :(得分:6)
:noremap <C-n> //s<CR>v//e+1<CR>
编辑摘要:是// e,但// e + 1为我工作(也选择了比赛的最后一个字符)。
答案 2 :(得分:5)
为了将来偶然遇到这个问题的人们的好处,vim现在内置了这个功能:gn
(及其近亲gN
)将跳转到下一个(分别为匹配并在视觉上选择它。它也可以用作动作;例如cgn
将跳转到下一场比赛并进行更改。