如何在Vim中指定光标下的行?

时间:2013-08-02 09:41:37

标签: vim vi

我想计算光标下行的出现次数。我打算用

来做
:%s/pattern/&/gn

命令。那么如何指定光标下的行代替pattern

2 个答案:

答案 0 :(得分:3)

您可以通过表达式寄存器插入当前行。对于文字匹配,将正则表达式切换为 very nomagic 模式(\V),并转义行中的任何反斜杠和分隔符:

:%s/\V<C-r>=escape(getline('.'), '/\')<CR>/&/gn

根据您想要精确计算的内容,您可能还需要锚定(\^...\$非常无畏模式)模式。

您可以通过<C-r>构建命令,而不是通过:execute直接插入。这更适合功能。

:execute '%s/\V' . escape(getline('.'), '/\') . '/&/gn'

答案 1 :(得分:0)

如果您正在寻找固定插件解决方案,我的SearchPosition plugin可以计算出现次数。有了它,V<A-m>将显示如下摘要:

On sole match in this line, 8 following, 2 in previous lines; total 10 for /this line\n/