[VIM 기술] global 명령 상세 설명

   : vale (  ),   : VIM
: global
: (Fri Jun 15 17:05:55 2007),

global Vim ( No.1), ,
, ,
。 , , , 。
, 。 Vim help ,
。 ( Vim ), , 。

|1.| global
|2.| global substitute
|3.| global [range]
|4.| global Vim
|5.|

==============================================================================
*1.* global

:h :g
:h 12.4

:[range]global/{pattern}/{command}

global [range] ( ) {pattern},
{command}, , global!
vglobal 。

Vim 。

【 1】 ( unix tac )

:g/^/m 0

/^/ ( , /./
, ), move ( 0
), 。

global : [range] , {pa
ttern} ; {command} ,
、 , ,
{command} 。{command} ex , | ex ,
, 。

, 。

【 2】

:g/^/+1 d

, ( +1 )。
? +1 d ,
, , 。

normal :

:%norm jdd

% , jdd, 。 global
,%norm , ,
, jdd 。 ,global
, normal 。

【 3】

:g/^/d|m.

:g/^/d , , move 。
, 【 2】, 。

normal ,%norm dd ,%norm jkdd
, , normal 。

==============================================================================
*2.* global substitute

:h 10.4
:helpg ms-word/c

vimmer , , , ,
substitute global ( ,substitute [r
ange] , )。 , :s :g 。

【 4】double

:%s/.*/&/r&/
:g/^/t.

substitue , ;global (:t :co
py) , 。

【 5】 、

txt ebook, vim help , ,
。 word , , word
, Vim 。 。

:%s//n/n/@!/ /

/n/n/@! ( /@! :h //@!, ),
, 。global 。

:g/./,/^$/j

/./ ,/^$/ , 。
, j ? ,
, ,
j 。 global [range] ,


? , :

:%s//n/@<!/n/n/@!/ /

vimmer 。 global
, global 。

:g/./,/^$/-1j

global substitute , ,
。 :

【 6】 aaa bbb, ccc ddd

:v/ccc/|ddd/s/aaa/bbb/g

【 7】 aaa bbb, ccc ddd

aaa ccc ddd ? 。
, 。 global :

:g/ccc/if getline('.') !~ 'ddd' | s/aaa/bbb/g

ccc , if (if ex !),getline
, ddd, (!~ true) 。
ex 、Vim , ,
。 , g v , global
( ) 。

==============================================================================
*3.* global [range]

:h range

global , {command} [rang
e]。 【 2】 【 5】 , [range],
。 【 2】 【 3】 。

【 8】 n , / m ( , 10 / 3 )

:g/^/d 3 | ,+6 m -1
:g/^/,+6 m -1 | +1 d 3

move ,
。 。

【 9】 。 , C :

#ifdef WIN32
XXX1
XXX2
#endif
...
#ifdef WIN32
XXX3
XXX4
#else
YYY1
YYY2
#endif

global Win32 , :

:g/#ifdef WIN32/+1,/#else/|#endif/-1 t $

t [range] , /#ifdef WIN32/ ,
, #endif #else ,t


【 10】 C Win32 (YYY )

, , [range] ,
global , 。 , 。
: , #else #endif ,
, #ifdef WIN32 block ; , block
#else , 。 :

:try | g/#ifdef WIN32//#else/+1, /#endif/-1 t $ | endtry

try endtry, global : WIN32, #else,
[range] , (WIN32 , #else
) #endif, [range] , t 。
#else block, ,[range] YYY1, XXX2(
#endif , YYY1 ), [range],
exception, try global 。

(,) , [range] (;) , ,
#endif #else , [range], try,
: #else block block #else 。

==============================================================================
*4.* global Vim

:h script
:h expression

:XxEditor ,Vim ? , Vim
, Vim , ,
vimrc plugin 。 Vim 。 ,
global , , ,


【 11】 ( )

:let i=0
:g/^/let i+=str2nr(getline('.'))
:echo i

i , str2nr i , Vim
。global for 。

Vim , , ,
, substitute , , global ,
。 。

【 12】

_Data Structures and Algorithm Analysis in C_ , ,
, :

/* 1 */ unsigned int factorial( unsigned int n )
{
/* 2 */ if( n <= 1 )
/* 3 */ return 1;
/* 4 */ return( n * factorial(n-1) );
}

, ( ),
global :

:let i=1 | g//a/s/ /{8}//=printf("//* %2d *//",i)/ | let i+=1

i ,g , 8 ,
。 //=, 。

, 。
【 13】 n , / m

:let n=10 | let m=3
:let i=-1 | g/^/let i+=1 | if i%n<m | d
:let i=-1 | g/^/let i+=1 | if i%n>(n-m-1) | d

i , i m n ,
【 8】 , 。

==============================================================================
*5.*

global , : range
, ; pattern, ;
ex , ; 、 、
, global 。 ,global , Vim
, , 。

global , ,
, ( , mv runsnake ,
), 。 ,
。 sed、awk , perl
script , 。 Vim
, , global 。
, 。 Vim , 。
, ,
, 。

==============================================================================
vim:tw=78:fo=tcq2:isk=!-~,^*,^/|,^/":ts=8:ft=help:norl:
※ :·vale Sep 27 12:26:18 ·[FROM: 219.143.141.*]
※ :· newsmth.net·[FROM: 219.143.156.*]

좋은 웹페이지 즐겨찾기