如何在vim中搜索所有大写单词?

时间:2012-06-04 13:20:51

标签: regex vim

我想搜索文件中的所有大写单词,但我不知道该怎么做(或者如果可能的话)。我在stackoverflow上找到了这个solution,但它在vim上不起作用。

3 个答案:

答案 0 :(得分:24)

从命令模式,假设您没有设置ignorecase选项:

/\<[A-Z]\+\>

/\v<[A-Z]+>

查找大于字长边界的长度为1的大写字母串。第二种形式使用非常神奇的&#39;。 :help magic了解详情

答案 1 :(得分:22)

答案最短:/\<\u\+\>

答案 2 :(得分:1)

如果你想要一个包含所有匹配的大写单词的列表(即你不想从一个单词跳到另一个单词),你可以使用:

echo filter(split(join(getline(1, '$'), ' '), '\v(\s|[[:punct:]])'), 'v:val =~ "\\v<\\u+>"')

使用:

  • getline(1, '$')返回当前缓冲区中所有行的列表
  • join(lines, ' ')展平此行列表
  • split(all_text, separators_regex)构建一个类似词的元素列表
  • ,最后filter(words, uppercase-condition)只选择大写字词。