我有很多喜歡全名的文件....使用VIM製作首字母縮略詞?
Light Machine Gun
Statistical Analysis System
etc
我想捕捉每一個字的第一個字符在一條線上,並希望進行的首字母縮寫。例如輕機槍就是LMG等等。我想在VI編輯器中將它記錄爲一個宏,並在整個文件中運行它。如果任何人都可以幫助我,那將會很棒嗎?提前致謝。
我有很多喜歡全名的文件....使用VIM製作首字母縮略詞?
Light Machine Gun
Statistical Analysis System
etc
我想捕捉每一個字的第一個字符在一條線上,並希望進行的首字母縮寫。例如輕機槍就是LMG等等。我想在VI編輯器中將它記錄爲一個宏,並在整個文件中運行它。如果任何人都可以幫助我,那將會很棒嗎?提前致謝。
假設每行一個名稱和該單詞的空格分開,下面的工作:
%s/\(\w\)\w*\ */\1/g
如果你也想利用每個字母,添加了情況的標誌(\u
):
%s/\(\w\)\w* */\u\1/g
的 「非常神奇」 的版本(見:help /magic
):
%s/\v(\w)\w*\s*/\u\1/g
Vim可以定義首字母縮寫,稱爲縮寫,說你要
Light Machine Gun Statistical Analysis System -> LMGSAS
只需輸入:
:ab LMGSAS Light Machine Gun Statistical Analysis System
,只要你鍵入LMGSAS它將替代它。
使用:ab
列出所有的縮寫,una xxxxx
以unabbreviate的東西。最後abc
清除一切。
編輯:我誤解了你的問題,如果你試圖去,單詞 - >縮寫,那麼Thor推薦的正則表達式s/\(\w\)\w*\s*/\1/g
工作正常。
它不直接回答這個問題,但是知道你是否想反過來工作是有用的。 –
我編輯包含一個實際的方式來解決這個問題,顯然人們發現這個答案有用,雖然所以我會離開它 – jozefg
你試過嗎?它不起作用。但是這樣做:'%s/\(\ w \)\ w * \ s */\ 1/g'。 – glts
@glts:我做過了,但是我在發佈時複製了錯誤的位。謝謝。 – Thor
你知道爲什麼'%s/\(\ w \)\ w * \ s +/\ 1/g'不起作用嗎?這應該匹配多個空格,對嗎? (我是vim regex的新手)。 – oyenamit