匹配行首的第一个单词 (Vim)

Match first word at the beginning of a line (Vim)

示例:

# Objects:
math =
  root: Math.sqrt
  square: square
  cube: (x) -> x * square x

# Splats:
race = (winner, runnners...) ->
  print winner, runners

我想匹配 cuberace(存储函数的 variables/objects)。

我意识到我不能使用 ^\w 因为它不会匹配后面带有 space 的单词,例如 cube.

在这种情况下我应该使用什么正则表达式?

对于您当前的示例,此模式会找到这些文本:

/\zs\S\+\ze\s*[:=]\s*(

它匹配文本,后面跟着任意数量的空格和 :=,然后是任意数量的空格,然后是 (。我希望这就是您要找的。

我用了\S\+而不是\w,因为我不知道像-, # etc.这样的字符是否也可以用作变量名。