2012-06-04 23 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

相關問題