如何在Vim的正則表達式替換中使用字母大小寫轉換?
比如有下面這段文字:
every day
想將兩個單詞都轉變爲全大寫,可以類似下面的vim最下行命令:
:s/\(.*\) \(.*\)/\U\1 \2/
轉變結果爲:
EVERY DAY
相關的轉義序列還有'\u','\L','\l'。
'\u'表示只將首字母大寫;而'\L','\l'的含義是與'\U','\u'相反的。
下面的blog中包含了與上面相似的內容:
不過要注意,此blog中在實驗時是使用了模式分組來做的。上面的四個轉義序列將在其被顯式停止前,對跟在其後的內容持續作用;如果要停止,需要使用'\e'來中斷。
比如想將上面的文字轉變爲:
EVERY day
則需要使用類似下面的方式:
:s/\(.*\) \(.*\)/\U\1\e \2/