2012-06-04 24 views
11

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

+2

你想对结果做什么?取决于你的话,它可能是非常简单的正则表达式,比如[A-Z] [a-z] + – hovanessyan

回答

22

从命令模式下,假设你没有选择ignorecase集:

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

/\v<[A-Z]+> 

查找大写字母比字边界包围长度大于一个任意字符串。第二种形式使用“非常神奇”。 :help magic的细节

+0

+1比我快1秒 – eckes

+0

我做错了什么或者你的表情不好吗?我得到的所有单词突出显示,小写和大写太...我使用gvim – sica07

+3

':set noignorecase' –

20

最简短的回答:/\<\u\+\>

+0

“你”是什么意思? – sica07

+6

+1,但'/ \ v <\u+>'更短! –

+3

@ sica07“\ u”表示像[A-Z]这样的大写字母。 – agudulin

1

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

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

有了:

  • getline(1, '$')返回从当前缓冲区中的所有行的列表
  • join(lines, ' ')展平该建立字状的元件
  • 最后filter(words, uppercase-condition),只有选择大写字的列表线
  • split(all_text, separators_regex)的此列表。
+0

谢谢你的回答,但我只是想从一个跳转到另一个 – sica07

相关问题