vi/vim 計算搜尋關鍵字數量

來源:互聯網
上載者:User

標籤:style   blog   http   color   ar   sp   檔案   on   問題   

http://hi.baidu.com/xletian/blog/item/f19962061a9a506c020881dc.html

在看過 vim 的全域指令和 search 指令之後,你會不會也會想自己還有什麼需求可以叫 vim 做的呢?

  今天我和布丁長輩還有DK長輩聊天的時候就講到一個問題:我可不可以知道到底這份檔案有多少個我想要搜尋的字串?

  當然啦,你如果會 vim 的全域指令你可能可以用 :g/pattern/p 之後,用 copy 的方式或是其他指令的組合把比對出來的東西存到另外一個檔案去,然後再用其他的工具(像是wc)計算行數。不過,這個方法,不夠方便。

  比較辛苦一點的方式也可以用 /pattern 然後自己按 n 一個個算,不過… 我想可能會先算到瘋掉。

  難道 vim 就只能這樣了嗎?

  忘了是DK長輩還是布丁長輩說可以寫程式來算。不過 vim 的 script 寫法,我打算到後面再寫。我心裡想的是,應該有一行就可以解決的方法啊!

  在 vim 裡面遇到問題的時候有兩個方式,第一個就是 :h 然後後面跟上你猜可能會有答案的關鍵字。不過這個方式我今天用了好幾次,感覺除了寫程式別無他途。可是,我就是不想寫程式。第二個方法就是到 www.vim.org 上找 tips 看,結果沒兩下就找到了這篇<Tip #860: count number of matches of a pattern>,後面的 comment 中有個人只用一行解決,看了就覺得「哎唷,怎麽就是沒想到呢?」其實用 vim 編輯檔案想這些怎麽樣可以讓自己少打點或是只用一行指令解決的過程是很有趣的。這個人用的方法很簡單也很漂亮,但卻要用到我們之前提過的取代指令 :s :

  :%s/pattern/&/g

  & 代表的意思就是用來表示前面比對的字串,所以做這個指令其實對檔案本身並不會有什麽改變。但是由於做的是全域的取代置換, vim 會告訴你有從多少行中多少個字串被取代。輕輕鬆鬆很漂亮地用一行命令解決這個問題。

  輸入只有一行的命令:

 

  結果就會出現在最後一行上,而且不會改變到檔案本身:

 

vi/vim 計算搜尋關鍵字數量

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.