~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 떠 라 는 범내 기 가능