vim置換コマンド
7187 ワード
(substitute)
:[range]s/pattern/string/[c,e,g,i]5.1
range ,1,7 ,1,$ , , % 。 ? % ,# 。
pattern , regexp 。
string pattern string 。
c confirm, 。
e error。
g globe, , 。
i ignore 。
g , 。 , cgi, , , 。
vi/vim :s 。 , (vi , ), , 。
:s/vivian/sky/ vivian sky
:s/vivian/sky/g vivian sky
:n,$s/vivian/sky/ n vivian sky
:n,$s/vivian/sky/g n vivian sky
n , n .,
:%s/vivian/sky/( :g/vivian/s//sky/) vivian sky
:%s/vivian/sky/g( :g/vivian/s//sky/g) vivian sky
# , /
:s#vivian/#sky/# vivian/ sky/
:%s+/oradata/apras/+/user01/apras1+ ( + / ): /oradata/apras/ /user01/apras1/
1.:s/vivian/sky/ vivian sky
:s/vivian/sky/g vivian sky
2. :n,$s/vivian/sky/ n vivian sky
:n,$s/vivian/sky/g n vivian sky
(n , n ., )
3. :%s/vivian/sky/( :g/vivian/s//sky/) vivian sky
:%s/vivian/sky/g( :g/vivian/s//sky/g) vivian sky
4. # , /
:s#vivian/#sky/# vivian/ sky/
5. ^M
: ,window (0A0D) ,Linux (0A) 。 , window Unix , ^M. unix windows (0D) shell c 。
· :cat filename1 | tr -d “^V^M” > newfile;
· :sed -e “s/^V^M//” filename > outputfilename。 1、2 ,^V ^M Ctrl+V Ctrl+M。 , 。
· vi : vi , ESC , :%s/^V^M//。
· :%s/^M$//g
, :
· tr -d “/r” < src >dest
· tr -d “/015″ dest
· strings A>B
6.
:s 。 :
:s/str1/str2/ str2 str1
:s/str1/str2/g str2 str1
:.,$ s/str1/str2/g str2 str1
:1,$ s/str1/str2/g str2 str1
:g/str1/s//str2/g
:g , ; g,
;g , 。
C , , :
#define BIT_MASK_1 (1 << 0)
#define BIT_MASK_2 (1 << 1)
#define BIT_MASK_3 (1 << 2)
#define BIT_MASK_4 (1 << 3)
#define BIT_MASK_5 (1 << 4)
#define BIT_MASK_6 (1 << 5)
#define BIT_MASK_7 (1 << 6)
#define BIT_MASK_8 (1 << 7)
#define BIT_MASK_9 (1 << 8)
#define BIT_MASK_10 (1 << 9)
#define BIT_MASK_11 (1 << 10)
#define BIT_MASK_12 (1 << 11)
#define BIT_MASK_13 (1 << 12)
#define BIT_MASK_14 (1 << 13)
#define BIT_MASK_15 (1 << 14)
#define BIT_MASK_16 (1 << 15)
#define BIT_MASK_17 (1 << 16)
#define BIT_MASK_18 (1 << 17)
#define BIT_MASK_19 (1 << 18)
#define BIT_MASK_20 (1 << 19)
#define BIT_MASK_21 (1 << 20)
#define BIT_MASK_22 (1 << 21)
#define BIT_MASK_23 (1 << 22)
#define BIT_MASK_24 (1 << 23)
#define BIT_MASK_25 (1 << 24)
#define BIT_MASK_26 (1 << 25)
#define BIT_MASK_27 (1 << 26)
#define BIT_MASK_28 (1 << 27)
#define BIT_MASK_29 (1 << 28)
#define BIT_MASK_30 (1 << 29)
#define BIT_MASK_31 (1 << 30)
#define BIT_MASK_32 (1 << 31)
, , :
#define BIT_MASK_1 (1 << 0)
, Normal , “Y31p", , 31 。 , 32 。
"V31j" 32 , :
:'<,'>s/BIT_MASK_/zs/d*/ze//=line(".") - line("'<") + 1
:'<,'>s//zs/d*/ze)$//=line(".")-line("'<")
, 。
, 。 , 。
, VIM , 。
, :
:'<,'>s/BIT_MASK_/zs/d*/ze//=line(".") - line("'<") + 1
, “BIT_MASK_” , , , 。
:
'<,'> (:help '<,:help '> )
s (:help :s )
/zs (:help //zs )
/d* (:help //d )
/ze (:help //ze )
/= (:help :s/= )
line(".") (:help line() )
line("'<") (:help line() )
“'<” “'>” “v”,“V” visual ,VIM , visual 。
“BIT_MASK_/zs/d*/ze” , “BIT_MASK_” , 。 “/zs”、“/ze” , “BIT_MASK_0” , 。
, 。 “:s” “/=” , 。 “line(".") - line("'<") + 1”, “line()” , , (mark) 。“line(“.”)” ,“line(“’<”)” “'<” 。 1 。
, VIM , 。 , 。
:
, 0 , :
UniqueID2 = lview.focusedItem.subItems.opIndex(0).text;
Parent = lview.focusedItem.subItems.opIndex(1).text;
Children = lview.focusedItem.subItems.opIndex(2).text;
……
, , :
:let n=0 | g/opIndex(/zs/d/+/s///=n/|let n+=1
, VIM , , ”line()” , 。
:
let (:help let )
| (:help :bar )
g ex (:help :g )
/zs (:help //zs )
/d/+ 1 (:help //d )
s (:help :s )
/= (:help :s/= )
, :
1. n 0;
2. ” opIndex(/zs/d/+”, n ;
3. n 1;
”|”, 。
, substitute , , , ”global” ”opIndex(/zs/d/+”。
, VIM 、 、 , :
http://vim.sourceforge.net/scripts/script.php?script_id=670