~cpp 1.VI(Visual interface Editor) 구 내 ▶ 데 로그램 데(binary) 로그램 source data 또는 문된 (ASCII) ▶Editor(unix system) Line editor 단 (ex ed) Screen editor 문 단 (vi) ▶Vi vi ex는 The University of California, Berkeley California computer Science Division, Department of Electrical Engineering and Computer Science 개발 ▶Vi 모드 명령()모드 반 및 기 모드로 문 , , 대 명령 ; <ESC> 력 모드 문 력 (a A I ...) 료 : <ESC> 막 (: / ? !) 대 력 CR(리 리) 력 내기 료 <DEL> 럽 ; 료 ▶Vi 명령 [from][.][to][명령][명령 ] or [n][명령][명령 ] 붙는 /럼 (z G | ) 롤 (^D ^U) 반복 과 (대부 경) 막 명령반복 명령(.) 변경(d s c ..) 동 반복 ▶.exrc vi가 때 동로 들 vi력 모드 는 모든 명령 vi경 set 대 보를 가고 다 만 .exrc 면 모든 set값 default로 됨 set wm=3 set sm ## . 력 bbm bbmaster@flower.chungnam.ac.kr로 바뀐다 ab bbm bbmaster@flower.chungnam.ac.kr ## 링 매로 map V :w^M:!spell -x %^M:e!^M^M 명령 vi 명령 리 대 류를 가 록 는 명령) d 명령, dw는 단 를, db는 단 를 미다. 명령 Ctrl 다른 결 는 ) ^u는 Ctrl를 른 u를 른다는 것 미 모드 모드 로그램란 로다른 기능 가 모드를 가고 다경 다. ) 모드 따라 달라다 모드 모드 로그램 들 같 미로 다 립 는 명령 ▶File 구 명 령 기 능 (↓: CR) 료 ZZ (=:wq) 된 경는 그 고 료 면 그대로 료 :w ↓ 변경된 내 기 :w! ↓ 가되 경 강 기 :w <file>↓ name 기 :w! <file>↓ name 겹 기 :q↓ vi료고 Unix롬로 동 :q!↓ 변경 내 무 vi료 및 로 :e <file>↓ 로 :e!↓ 변경 고 :e+ <file>↓ 부 개 :e +n↓ n 부 개 :e #↓ 고 던 file :e! #↓ 변경 리고 file 가 :r <file> ↓ <file> 문로 read :r !<명령>↓ <명령> 결과를 read :nr <file>↓ n 래로 <file> read 기 :sh↓ vi로 복귀(^d, exit ) :!cmd↓ 명령 cmd를 고 복귀 :n args↓ 로 리 ^G 과 :ta tag↓ 를 tag :f<ESC> ? 다 $vi A B C D 4개 (A B C D) 대로 다 :n 다 다 로 동 복구 $vi -r 명 꺼나(럽 발), 고 나 때 변경 내 복구 구 명 령 기 능 면동 /단 n 로부 n 로 동다 + (n+) 를 다 (또는 n) 로 동 - (n-) 를 (또는 n) 로 동 G 막 문로 동 1G 문로 동 nG n 문로 동 H 면 L 면 막 M 면 CR + 같 ↓또는 j 다 같 럼 ↑또는 k 같 럼 1문 ^ 공 닌 문 O $ 끝 h 또는 → 방 l 또는 ← 뒤 방 ^H ←( ) 같 nl 된 럼로 n 동 space →( 바) 같 fc (nfc) 다 나나는 문 c로 동 Fc (nFc) 나나는 문 c로 동 tc (ntc) 다 나나는 문 c 로 동 Tc (nTc) 나나는 문 c 로 동 ; (n;) 바로 검 방법과 같 방로 문 c로 동 , (n,) 바로 검 방법과 반대 방로 문 c로 동 단 w (nw) 다 나나는 단나 문 ()로 동 W (nW) 다 나나는 단() 공로 동 e (ne) 다 나나는 단나 문 (끝)로 동 E (nE) 다 나나는 단(끝) 공로 동 b (nb) () 나나는 단나 문 ()로 동 B nB 나나는 단() 공로 동 문//러그라 { or n{ 가 는 러그라 로 동 } or n} 러그라 로 동 ( 가 는 문 로 동 ) 가 는 문 끝로 동 ]] or n]] 로 동 [[ or n[[ 다 로 동 면단 ^F n^F 면 로 보내기 ^B n^B 면 뒤로 보내기 ^D n^D 반면 롤 다 ^U n^U 반면 롤 ^Y n^Y 뒤로 동 ^E n^E 로 동 z 를 면 top로 동, 문가 롤됨 z. 를 면 로 동, 문가 롤됨 z- 를 면 bottom로 동, 문가 롤됨 ^L 면 고 다 력(refresh) ^R ^L가 →key 는 경 면 고 refesh 구 명 령 기 능 (insert) a 다부 가 i 부 A 막 가 I 가 o 밑 가 O 가 ^H 문를 ( ) ^W 단를 erase 문로 ^H 같다 kill 말 문. 력 \ 문나 말 문를 ESC ESC 료고 명령 모드로 복귀 DEL 럽 모드를 료 ^D 문 back tab. autointent 리 ^^D (^) control-d(^D)를 른다. 두 back tab. autointent 리 O^D 두 back tab autointent 리 ^V 리 되 문를 ESC 결 J 두 결 로 만든다 기(delete) 문 x nx 문를 다 X nX 문를 다 D 는 끝까 모든 문를 다 d0 부 문까 다 dd ndd (또는 n) 다 dG 로부 끝까 모든 다 d1G 로부 까 모든 다 dnG 로부,대로 n 까 모든 다 d- 과 부를 다 d+ 과 다 다 nd- 과 n 부를 다 nd+ 과 다 n 부를 다 ddp 과 다 교다 문//구 d) dn) 다 문 끝까 다 d( dn( 문 문까 다 d} dn} 다 paragraph 끝까 다 d{ dn{ paragraph 문까 다 d] dn] 다 section 끝까 다 d[ dn[ section 부 문까 다 범까 dfc dnfc 방로 (n) 'c'문까 다 dFc dnFc 방로 (n) 'c'문까 다 dtc dntc 방로 (n) 'c'문까 다 dTc dnTc 방로 (n) 'c'문까 다 d/pat 방로 면 만나는 (pat)까 d?pat 방로 면 만나는 (pat)까 text복구 p 내(change, delete, yank) 복구다 P 내(change, delete, yank) 다 복구다 문복구 $vi -r <> <> 문가 기기 * 꺼나, 고 나때* 구 명 령 기 능 교 단 cw cnw 부 (n 다)단 끝까 변경 cW cnW 부 (n 다)단 끝까 변경 cb cnb 가 가까(n) 단 부 문 까변경 cB cnB 가 가까(n) 단 부 문 까변경 문//구 c) cn) 다 문 끝까 변경 c( cn( 문 문까 변경 c} cn} 다 paragraph 끝까 변경 c{ cn{ paragraph 문까 변경 c]] cn]] 다 section 끝까 변경 c[[ cn[[ section 부 문까 변경 문까 cfc cnfc 방로 (n) 'c'문까 변경 cFc cnFc 방로 (n) 'c'문까 변경 ctc cntc 방로 (n) 'c'문까 변경 cTc cnTc 방로 (n) 'c'문까 변경 검 /문 문 로 검 10,20/문 10 20까 문 검 1,$/문 부 끝까 문 검 /문/+n 방로 검된 문 다 n 로 동 ?문 문 뒤로 검 동 ?문?+n 방로 검된 문 다 n 로 동 n 방 검과 같 방로 검(/) N 방 검과 반대 로 검(?) 롤문(^)검기 :/^M(^V+^M) 롤 문(^)를 면 나낼 때는 먼 ^V를 른 다 력고 는 롤 문를 러 다 (replacement) : [범]s/old/new/[cgi] 단 ( . , * [ ^ $ \ / &) 각각 (\. \* \[ \^ \$ \ \/ \&)로 [범] [] [$] 끝 [. ] [%] [cgi] [c] 변경 변경부를 게 물 본다 [g] 나난 모든 것 변경다 [i] 검 대 문 구 는다 :s/old/new/g 대 :10,$s/old/new/g 10 끝까 :g/A/s//B/g A를 (g/A) A를 B로 다 (s//B), s뒤 //는 text를 다 되게 다 반복 다(/g) :g/ABC/s/B/Z/g ABC를 (s/B/Z) ABC B 를 Z로 다 (/g) 반복 다(/g) 구 명 령 기 능 Mark() mc 를 'c'로 다 ('c' 는 1문며 문다) 동 'c 'c'로 된 로 동다 ` 'c'로 된 문로 동다 " 되나, 던 바로 로 동 `` 되나, 던 그 문로 동 블럭 / 가 :10,20w 명 10 20까 명 :10,20w >> 명 10 20까 명 가 :10,20r 명 10 20까 명 르기(yank) "a5dd 부 5고, a라는 복 yw 단를 기록다 3yw 3단를 기록다 y$ 끝까 기록다 y) 문 끝까 기록다 yy nyy (n개) 기록다 (Y) "a5Y 부 5 a라는 로 기록 붙기(put) p 내 른 가다 P 내 가다 "ap a 는 내 가다 "np n 명령나, yank명령 기록된 내 가고 붙기 매로(반복되는 ) :map<><기능> <> 는 10 까 <기능> 100 까 *) vi bug로 모든 모드 매로가 동는 는다 :unmap <> 매로 :map #n <기능> 만 <>가 #n - n 0 9까 - 라면, 그것 매로 로 될 것다. :map #2 :w^M 문를 다가 기능 F2를 르면 :w^M 다 :map V :w^M:!ispell -x $^M:e!^M^M (문 검) :map #2 :w^M: !cc %^M:e!^M^M (vi 기능 F2로 ) 명령 . 가 근 명령 J 두 결 ~ 대문 문 변 ^1 면 고 력 명령 기 능 명령 기 능 commond명령 기 능 : ex모드() ^f 방로 면 롤 :r <file> <file> 문로 read ) 다 sentence G . . .로 동(dft는 끝) :r !<명령> <명령>결과를 read ( sentence ^g 를 면력 :nr <file> n로<file> read } 다paragraph h 로 동 :! 명령를 { paragraph H 면 로 동 :sh 로 나감 ]] 다 section ^h 모드 backspace :x 고 나가기 [[ section i :wq 고 나가기 0() line 문로 동 I :11,22w <file> 11과 12 내 $ line 끝로 동 ^i tab (모드) :w >> <file> <file> ^ line 문로 동 j 래로 동 :w! 덮기 + 다 문로 동 k 로 동 :q 끝나기(변는 러 메) - 문로 동 l 른로 동 :q! 내변경과 관 료 spacebar 다문 L 면 막 로 동 :e <file> vi를 나가 고<file> return 다 ^l refresh :e! 변경 고 / 방 m 를 :n 다 ? 뒷 방 M 면 로 동 :n <files> 기 로 리로<file> % 로 루는 (,{,[,-),},}로 동 ^m 리 리(CR) , 막f,F,t,T명령 방로 n 막 검 다 :e# 고 던 <file> ; 막f,F,t,T명령 방로 N 막 검 방 :args 된 보 . 막 명령 반복 ^n 래로 동(명령 모드) :rew 맨 로 ` mark곳로 동 o 밑 가 :map m n 매로 ' 가 는 로 동 O 가 :map! m n 매로 ( 모드) `` 곳 or 기 p 밑 :unmap m 매로 '' `` P 래로 :unmap! m 매로 (모드) ~ 대문↔문 변 ^p 로 동(명령 모드) :ab <1> <2> " Q 끝내고 ex :unab <1> !! 막 명령 반복 r 문를 교 :set <option> set ! send next to commend, replace output(eg !) R 모드가 남때까 교 ( ESC를 를 때까) :set number 라 붙기 >> 른로 shiftwith만 paragraph 동 ^r refresh(명령 모드) !} 문단 된 unix 로그램로 결 결과를 문단과 교 << 로 shiftwith만 paragraph 동 s 교 >% 른로 (,{,[ 만날때 까 동 S 그 모든 문를 대 <% 로 (,{,[ 만날때 까 동 t 른로 그 문 바로 까 동 a 문 다부 모드 T 로 " A 끝 ^t 다 shiftwith로 동 b 단 뒤로 동 u 막 명령 B 공 구 단 뒤로 동 U 변를 ^b 면 로 롤 ^u 반면 로 롤 c 된 까 변경 ^V 다 글 방 C 끝까 변경 w 단 른로 동 ^c 모드 끝(명령 x) W 공 구 단 른로 d .된 까 text ^w 단 로(모드) D 끝까 x 문 ^d 면 반 래로 롤 X 문 e 단 끝로 동 y . . . 를 yank E 공 구 단 끝로 동 Y yank ^e 밑로 면 롤 ^y 로 면 롤 f . . . z 린 top(. mid -bot) F . . . 뒷방로 ZZ 고 나감(=wq) set 명령 기 능 Option Default :set <option> <param> :set <nooption> <param> set명령 는 <option> no를 붙다 :set all vi 대 모든 것 볼 다 autoindent(ai) noai 들 기 기능 동 autoprint(ap) ap 각 명령 변를 동로 면력 autowrite(aw) noaw 러 다른 로 동 동(:n, :!) beautify(bf) nobf 력는 동 모든 문를 무 단 tab, newline, formfeed는 directory(dir=) /tmp 를 기 디렉리 edcmpatible noedcmpatible ed기 기능 errorbells(eb) errorbells 러 발 벨림 exrc(ex) noexrc home 디렉리가 닌곳 .exrc hardtaps=(ht=) 8 드 범 ignore case(ic) noic 검나 교 대문 무 lisp nolisp indentation lisp로 list nolist 모든 문 대 ^I, 끝 $를 magic magic [*. 문들 규 미를 갖 mesg masg 대 기를 number(nu) nonumber 미날로 력되는 메를 가능게 open noopen Vi모드를 ex 가능게 optimize(opt) optimize paragraphs=(para=) IPLPPQPPLIbp 문맥 매로 prompt prompt ex명령 prompt readonly(ro) noro ! 부는 기 방 reraw noredraw remap remap map된 문들 반복로 report= 5 변경 리기 매로 공 scroll 1/2 롤 를 sections= SHNHH section 매로를 shell=(sh=) 경 shiftwith=(sw=) 된 른 로 를 기는 명령 showmatch(sm) {,( 린 경 매되는 },) 1 동 력고 로 돌 showmode noshowmode 력 모드 면 단 "input mode"력 slowopen(slow) tab 렀 경 동 공 tabstop(ts=) 다른 tab격 다른 경 taglength(tl=) tab 내 미는 문를 결 tags= tag /usr/lib/tags 그명령 되는 pass term= 미 timeout(to) timeout 단 러 메 력 tty type= Set 1 매로 "time out" warn warn 미 window=(w=) 된 내 되 고 명령 경 경고 메를 력 wrapmargin=(wm=) 0 면 보 를 wrapscan(ws) ws writeany(wa) nowa 떠 라 는 범내 기 가능