[英]Vim — replace ‘foo’ by ‘bar’ on lines NOT starting with ‘character’
[英]Capitilize lines starting with ** in vim
我試圖大寫以int開頭的每一行 。 或INT。
遵循命令
%s/\<int.*\>/\U&/gi
大寫國際,整數等線。 (我知道我可以添加c然后搜索它然后確認它但我更喜歡將它添加到我的.vimrc並且每當我保存文件時都會得到結果。)
那么我怎樣才能將以int開頭的行大寫。 (int period space另一個詞......)我試過了
%s/\<int.\s*\>/\U&/g
但它不起作用。
謝謝。
你需要使用
%s/^int\..*/\U&/i
這里,
^
- 字符串的開頭 int\\.
- 一個int.
子 .*
- 所有文本到行尾。 \\U&
replacement將所有匹配的文本轉換為大寫。
i
標志使匹配不區分大小寫。 請注意,此處不需要g
,因為該命令將影響所有行,並且每行只有1個匹配項。
我會這樣做:g
命令:
:g/^int\./norm! gUU
一些說明 :
以上行適用於選項ic
集。 我覺得設置ic
和scs
很方便。
無論你是否設置了ic
下面的行都有效:
:g/\\c^int\\./norm! gUU
只是說:看起來更容易:g
。
就像是:
:g/\v^(int|INT)\./norm! gUU
\\v
激活regexp的魔法模式,不是強制性的,但我覺得這樣比較容易, :g
獲取與模式匹配的所有行,並啟動norm! gUU
norm! gUU
為每個線(感謝@Kent的提示!)。 如您所知, gUU
在正常模式下將整行轉換為大寫。 有關更多信息:g
here: http : //vim.wikia.com/wiki/Power_of_g這很容易成為許多用戶不知道的Vim的一個殺手級功能。 沒有它,我活不下去!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.