~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 는 범내 능