Vim n用于“部分”单词搜索的键?

时间:2013-12-08 20:19:04

标签: vim

如果我在源文件中实现了这样的C ++函数:

void ClassName::foo ()
{
   if ( true)
   {
      while ( true )
      {
         fork ();
         1 / 0;
      }
      foo ();
   }
}

然后我将光标放在第3行的最后一行foo ()并按 * ,它会抱怨“搜索命中BOTTOM,继续在TOP”。换句话说:

/\<foo\>

不符合

ClassName::foo

无论如何都要覆盖默认搜索功能

2 个答案:

答案 0 :(得分:5)

这是因为您对C ++文件的'iskeyword'设置包含:字符。 *标识符上的ClassName::foo命令将突出显示整个标识符。

您可以使用g*命令(不执行整个词搜索,但也会匹配例如pfooey),或通过以下方式更改选项

:setlocal iskeyword-=:

(但请注意,这会对w之类的动作产生影响,甚至可能会破坏语法高亮。)

答案 1 :(得分:0)

默认情况下,wrapscan选项处于启用状态,因此您应该按照预期的那样获得相同的消息,并将光标跳至foo中的ClassName::foo

执行:verbose set wrapscan?以查看默认值的更改位置。

另外,你在标题中提到n但在身体中没有提到,是什么?