linux/unix programming vi 편집기 (vi editor) 최미정 [email protected] 강원대학교 it...

45
Linux/UNIX Programming VI 편편편 (VI Editor) 편편편 [email protected] 편편편편편 IT 편편 편편편편편편편

Upload: herrod-nichols

Post on 04-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

Linux/UNIX Programming VI 편집기 (VI Editor) 최미정 [email protected] 강원대학교 IT 대학 컴퓨터과학전공. UNIX 편집기 종류. VI 편집기. vi 모든 유닉스 시스템에서 사용할 수 있으며 , 기능도 매우 강력함 기능을 배우는데 상당한 시간을 투자해야 함 ( 숙련자가 되는데 많은 노력이 필요함 ) emacs 기능은 막강하나 기능 숙달에 많은 시간을 투자해야 함 모든 유닉스 시스템에서 유용한 것은 아님. vi 시작하기. VI 편집기. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Programming

VI 편집기 (VI Editor)

최미정[email protected]

강원대학교 IT 대학 컴퓨터과학전공

Page 2: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 2

UNIX 편집기 종류

vi• 모든 유닉스 시스템에서 사용할 수 있으며 , 기능도 매우 강력함• 기능을 배우는데 상당한 시간을 투자해야 함

( 숙련자가 되는데 많은 노력이 필요함 )

emacs• 기능은 막강하나 기능 숙달에 많은 시간을 투자해야 함• 모든 유닉스 시스템에서 유용한 것은 아님

VI 편집기

Page 3: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 3

vi 시작하기

vi 를 시작하려면 , Shell Prompt 상에서 “ vi” 명령어 입력

$ vi [file [file …]]

file 은 사용자가 편집하고자 하는 파일의 이름

VI 편집기

Page 4: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 4

명령 모드와 입력 모드

vi 로 작업하면 모든 데이타는 편집 버퍼 (editing buffer) 에 유지됨( 자신이 작업하는 내용은 메모리에 있음에 유의 )

입력 모드 (input mode)• 입력하는 모든 것이 편집 버퍼에 입력됨• 즉 , 자신이 입력하는 내용이 화면에 보이고 , 그 입력 내용은 메모리 반영됨

( 디스크에 직접 반영되는 것이 아니라 편집 버퍼인 메모리에 반영됨 )

명령 모드 (command mode)• 입력하는 모든 것이 명령어로 해석됨• 일반 편집기에서 화살표 키와 같은 역할을 수행한다고 이해할 수 있음

VI 편집기

명령 모드 입력 모드

ESC 키

i, I, o, O, s 키 등

Page 5: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 5

디스크 ( 파일 ) 와 편집 버퍼VI 편집기

Disks(Files)

(Editing)Buffer

버퍼 내의 파일내용 저장 후

편집기에서 빠져 나옴

파일 편집을 위해서

편집기를 부름

Disk(file) 와 편집 버퍼와의 관계 Disk(file) 와 편집 버퍼와의 관계

Page 6: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 6

vi 종료하기 (1/2)

종료하기 위해서는 명령을 입력할 수 있는 명령모드에 있어야 함

ZZ 작업 내용을 저장하고 종료 (Shell Prompt 로 복귀 )

:q 아무런 작업을 하지 않은 경우의 종료

:q! 작업 내용을 저장하지 않고 종료

:wq 작업 내용을 저장하고 종료 (ZZ 와 동일한 기능 )

“:q!” 를 사용할 경우 , 작업 내용을 저장했는지 꼭 확인할 것

VI 편집기

Page 7: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 7

vi 종료하기 (2/2)VI 편집기

Page 8: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 8

vi 명령어 사용 전략

편집 버퍼 ( 화면 ) 에 데이타를 넣을 때 다음 단계를 따른다 .

1. 데이타를 쓰고 싶은 곳으로 커서를 옮긴다 .

2. 입력 모드로 바꾸기 위한 명령을 사용한다 .

3. 데이타를 입력한다 .

4. 명령 모드로 바꾸기 위해 ESC 를 누른다 .( 내용을 입력한 후에는 버릇처럼 ESC 를 누른다 .)

편집 버퍼 ( 화면 ) 에 데이타가 있으면 어떤 일을 수행하기 위한 다양한 명령들을 읽힌다 .

1. 커서를 움직이는 명령

2. 입력 모드로 전환하는 명령

3. 변화를 주기 위한 명령

VI 편집기

Page 9: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 9

커서 이동하기 (1/4)

명령 모드에서 자판의 키를 활용하여 커서를 이동시킨다 .

VI 편집기

h 커서를 한 칸 왼쪽으로 이동

j 커서를 한 칸 아래쪽으로 이동

k 커서를 한 칸 위쪽으로 이동

l 커서를 한 칸 오른쪽으로 이동

LEFT 커서를 왼쪽으로 한 칸 이동

DOWN 커서를 아래쪽으로 한 칸 이동

UP 커서를 위쪽으로 한 칸 이동

RIGHT 커서를 오른쪽으로 한 칸 이동

BACKSPACE 커서를 왼쪽으로 한 칸 이동

SPACE 커서를 오른쪽으로 한 칸 이동

Page 10: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 10

커서 이동하기 (2/4)VI 편집기

h

k

l

j

Page 11: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 11

커서 이동하기 (3/4)VI 편집기

- 커서를 이전 줄의 처음으로 이동

+ 커서를 다음 줄의 처음으로 이동

RETURN 커서를 다음 줄의 처음으로 이동

0 커서를 현재 줄의 맨 앞으로 이동

$ 커서를 현재 줄의 끝으로 이동

^ 커서를 현재 줄의 첫 글자로 이동 ( 탭이나 공백이 아닌 )

w 커서를 다음단어의 첫 글자로 이동

b 커서를 이전단어의 첫 글자로 이동

Page 12: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 12

커서 이동하기 (4/4)VI 편집기

W w 와 동일 , 문장 부호 무시

B b 와 동일 , 문장 부호 무시

) 다음문장의 처음으로 이동

( 이전문장의 처음으로 이동

} 다음문단의 처음으로 이동

{ 이전문단의 처음으로 이동

H 커서를 화면 맨 위로 이동

L 커서를 화면 맨 아래로 이동

M 커서를 중간으로 이동

Page 13: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 13

화면 이동하기VI 편집기

^F 한 화면 아래로 이동

^B 한 화면 위로 이동

^D 반 화면 아래로 이동

^U 반 화면 위로 이동

vi 는 화면에 알맞을 만큼만 편집 버퍼의 내용을 보여줌

화면에 나타나지 않은 편집 버퍼의 다른 부분을 보기 위해서 화면을 이동하는 명령을 사용함

Page 14: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 14

패턴 검색 (1/3)VI 편집기

사용법 : 명령 모드에서 “ /” 혹은 “ ?” 을 사용

/search_pattern 커서 이후에 대해 검색을 수행함

?serach_pattern 커서 이전에 대해 검색을 수행함

상기 사용법에서 search_pattern 에는 찾고자 하는 단어나 문장을 입력함

Page 15: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 15

패턴 검색 (2/3)VI 편집기

Page 16: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 16

패턴 검색 (3/3)VI 편집기

Page 17: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 17

줄 번호 붙이기 (1/2)VI 편집기

편집 버퍼에 있는 각 줄에 번호를 부여하고 관리함• 줄 번호 붙이기

:set number

:se nu

• 줄 번호 없애기:set nonumber

:se nonu

줄 번호를 알 경우 , 다음 명령을 사용하여 원하는 줄로 이동할 수 있음

nG 줄 번호 n 으로 이동하기 (:n)

1G 편집 버퍼의 첫 줄로 이동하기 (:1)

G 편집 버퍼의 마지막 줄로 이동하기 (:$)

Page 18: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 18

줄 번호 붙이기 (2/2)VI 편집기

Page 19: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 19

입력 모드로 변환 (1/5)VI 편집기

새로운 데이타 입력에 사용되는 명령( 명령 모드에서 다음 키를 입력하면 입력 모드로 변환됨 )

i 입력모드로 전환 , 커서 위치 앞에서 삽입

a 입력모드로 전환 , 커서 위치 뒤에서 삽입

I 입력모드로 전환 , 현재 줄의 앞에서 삽입

A 입력모드로 전환 , 현재 줄의 뒤에서 삽입

o 입력모드로 전환 , 현재 줄의 아래에 전개

O 입력모드로 전환 , 현재 줄의 위에 전개

Page 20: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 20

입력 모드로 변환 (2/5)VI 편집기

a1234

Page 21: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 21

입력 모드로 변환 (3/5)VI 편집기

i1234

Page 22: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 22

입력 모드로 변환 (4/5)VI 편집기

o1234

Page 23: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 23

입력 모드로 변환 (5/5)VI 편집기

O1234

Page 24: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 24

내용 수정하기 (1/4)VI 편집기

현재 커서를 중심으로 파일의 내용을 수정하는 명령어들(“r” 을 제외하고는 명령 수행 후 입력 모드로 변경됨 )

r 단지 한 글자만 변경 ( 입력 모드로 바뀌지 않음 )

R 입력하는 대로 겹쳐 써서 변경

s 현재 글자를 삭제하고 삽입 상태로 변경

C 커서의 위치로부터 줄 끝까지 삽입에 의한 변경

cc 전체 줄을 삽입에 의해 변경

cw 현재 단어를 삭제하고 삽입 상태로 변경

Page 25: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 25

내용 수정하기 (2/4)VI 편집기

rx

Page 26: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 26

내용 수정하기 (3/4)VI 편집기

R1234

Page 27: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 27

내용 수정하기 (4/4)VI 편집기

s1234

Page 28: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 28

UNDO & REDO (1/3)VI 편집기

UNDO: 방금 전에 수행했던 내용을 취소

REDO: 방금 전에 수행했던 내용을 반복 수행

u 방금 전에 수행했던 내용을 취소 (Undo)

U 현재 줄에서 수행했던 모든 내용을 취소

. 방금 전에 수행했던 내용을 반복하여 수행 (Redo)

Page 29: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 29

UNDO & REDO (2/3)VI 편집기

u

cw123456[ESC]

Page 30: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 30

UNDO & REDO (3/3)VI 편집기

o123456[ESC]

..

Page 31: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 31

줄 결합VI 편집기

현재 줄과 다음 줄을 하나의 줄로 결합시킴

J 두 줄을 하나의 줄로 결합시킴 (j 와의 차이에 유의 )

J

Page 32: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 32

데이타 삭제하기 (1/4)VI 편집기

편집 버퍼에 있는 데이타를 삭제하는 명령 ( 명령 모드에서 동작 )

x 커서가 있는 문자 지우기

X 커서의 왼쪽 문자 지우기

D 커서부터 줄의 끝까지 지우기

dd 현재 줄의 전체를 지우기

:from,to d 주어진 범위 (from~to) 의 줄을 모두 지우기

삭제한 내용은 편집기의 버퍼에 저장되며 , 추후 Undo, Redo, Copy를 위하여 사용될 수 있음 ( 다음에 설명 )

Page 33: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 33

데이타 삭제하기 (2/4)VI 편집기

x

Page 34: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 34

데이타 삭제하기 (3/4)VI 편집기

D

Page 35: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 35

데이타 삭제하기 (4/4)VI 편집기

dd

Page 36: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 36

버퍼 내용 집어 넣기 (1/3)VI 편집기

마지막으로 삭제한 내용 ( 버퍼 내용 ) 을 집어 넣는다 (Put 한다 ). Windows 에서 Cut & Paste 와 개념이 유사함

명령 모드에서 수행되며 , 명령어 수행 후에도 명령 모드로 남는다 .

p ( 소문자 ) 버퍼 내용을 커서의 뒤 ( 혹은 아래 ) 에 삽입

P ( 대문자 ) 버퍼 내용을 커서의 앞 ( 혹은 위 ) 에 삽입

Page 37: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 37

버퍼 내용 집어 넣기 (2/3)VI 편집기

D

p

Page 38: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 38

버퍼 내용 집어 넣기 (3/3)VI 편집기

dd

P

Page 39: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 39

줄 복사 및 이동 (1/3)VI 편집기

줄 이동

:n (n 번째 줄로 이동 )

줄 내용 복사

:from,to y (from 줄에서 to 줄까지를 버퍼에 복사함 )

nY: 현재 위치에서 n 줄을 버퍼에 복사함

Page 40: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 40

줄 복사 및 이동 (2/3)VI 편집기

:10

Page 41: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 41

줄 복사 및 이동 (3/3)VI 편집기

:5,8 y

P

Page 42: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 42

파일 저장하기 (1/2)VI 편집기

현재까지 편집 (editing) 한 내용 ( 편집 버퍼에 들어있는 내용 ) 을 파일에 저장 (write) 한다 .

:w ( 현재 파일에 저장한다 .):w file_name ( 주어진 파일 (file_name) 에 저장한다 .):wq ( 저장하고 종료한다 .)

Page 43: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 43

파일 저장하기 (2/2)VI 편집기

:w

Page 44: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 44

VI 명령어 요약VI 편집기

홈페이지에 아래아한글 파일이 있으니 다운로드 받으세요 .

Page 45: Linux/UNIX Programming VI  편집기  (VI Editor) 최미정 mjchoi@kangwon.ac.kr 강원대학교  IT 대학 컴퓨터과학전공

Linux/UNIX Program-mingPage 45

Homework#2VI 편집기