Vim - 用于直观地选择正则表达式匹配的命令?

时间:2012-02-19 09:44:07

标签: vim

无法弄清楚如何在可视模式下自动选择正则表达式匹配。

例如,手动,我可以搜索单词

/word

将光标置于匹配“word”的第一个字符上 然后我按v进入可视模式,然后按llll选择整个“单词”。

现在我想用宏来做这件事,我不知道比赛的长度。

我预计Vim会在当前比赛的开始和结束时自动定义一些内置标记,这样我就可以了。但我找不到任何相关信息。

我想要的是将Ctrl+n重新分配给一个宏来带我到下一场比赛并在视觉模式中选择它,即不只是突出显示匹配。 (与n将你带到下一场比赛的方式相同。)

如果你想知道原因,那是因为我想根据正则表达式匹配创建折叠(例如Ctrl+nzf),但我相信它在其他情况下也会派上用场

3 个答案:

答案 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将跳转到下一场比赛并进行更改。