Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vi editor.

Similar presentations


Presentation on theme: "Vi editor."— Presentation transcript:

1 vi editor

2 [1] 시작 vi의 실행은 한글 환경에서 vi를 입력하면 되고, 콘솔모드 에서 한글을 다루려면, han을 먼저 입력한 뒤, vi를 입력하 면 됩니다. vi를 실행시키는 방법은 간단합니다. 셸상에서 'vi'라고 입력하고 Enter 키만 누르면 된다. 그러면 새로운 문서를 편집할 수 있는 환경이 만들어 집니다. 예) >vi 기존의 문서를 편집하고자 할 때에는 파일의 이름을 구체 적으로 명시합니다. 예) >vi file1 지정한 파일의 내용을 읽기 전용으로 열어서 볼 때는 다음 과 같이 명시합니다. 예) >vi -R file >view file

3 [2] vi의 세가지 모드 이렇게 vi를 실행시키면, 검은색 화면 첫행에 커서만 깜 박거리고 있을 것입니다. "어? 왜 메뉴가 없지?" 처음 vi를 사용하는 분이라면 아마 이런 질문을 하게 될 것입니다. 결론부터 말하자면 vi에는 메뉴가 없다. 필요 한 명령어는 전부 외워서 적용해야 합니다. 도스나 윈도에서 사용하던 편집기에서는 일단 편집하고 자 하는 파일에 내용을 입력하다가 편집 명령을 이용할 때에는 화면의 메뉴를 클릭, Ctrl이나 Alt와 같은 특수키 를 사용했을 것입니다. 하지만 vi에서는 메뉴라는 것이 없이 상태를 전환할 수 있는 다른 방법을 제공한다는 차 이점을 가지고 있습니다. 처음에는 이러한 방법이 어렵 게 느껴질지 모르지만, 익숙해지다 보면, 오히려 이러한 방법이 더 편리하다는 것을 알게 될 것입니다.

4 [2] vi의 세가지 모드 #2 그렇다면 vi명령어는 어떻게 구성되어 있을까요? vi명령어는 다음과 같이 입력 모드, 명령 모드, 콜론 모드 (ex 모드) 크게 세가지로 분리됩니다. ① 입력 모드 - i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 상태 ② 명령 모드(Esc모드) - ESC키를 누른 상태 ③ 콜론 모드(Ex모드) - ESC키를 누르고, :(콜론)을 입력 한 상태 Esc : Enter 입력 모드 명령 모드 x,dd,dw i, a, o, O, R

5 [2] vi의 세가지 모드 #3 그리고, 이러한 기본적인 모드들을 다른 편집기의 활용과 비 교해보자면, 다음과 같습니다. ① 입력 모드 - 다른 편집기에서 타이핑을 하여 파일의 내용 을 입력하는 과정 ② 명령 모드 - 다른 편집기의 편집(Edit) 메뉴에서 제공하는 복사(Copy), 붙이기(Paste),삭제(Delete) 등의 편집 기능의 활용 ③ 콜론 모드(ex 모드) - 다른 편집기의 파일(File) 메뉴에서 수행하는 열기(Open), 저장 (Save), 다른 이름으로 저장 (Save as) 등의 명령 수행 vi는 실행될 때 명령 모드에서 시작하고, 실행을 종료할 때에 는 콜론 모드에서 종료 명령을 수행합니다. 또한 vi는 대문자 와 소문자 구분을 확실히 해두어야 한다는 것을 유념합시다. 자. 이제 그림을 통해 이러한 세가지 모드를 구체적으로 살펴 보도록 합시다

6 (1) 입력 모드 글자를 입력하기 위해서는 입력모드로 가야 하는 데, 'i'를 입력하면, 하단에 --INSERT--가 나오면 서, 글자를 입력할 수 있는 입력모드로 바뀝니다. 입력 모드로 들어가는 대표적인 방법은 i 키를 누 르는 것이지만, 이외에도 몇 가지 방법이 더 있습 니다. 이렇듯 다양한 종류의 글 삽입 방법을 만들 어놓음으로써 키보드 타이핑 횟수를 최대한 줄일 수 있는 이점을 지닙니다. 이것은 모드 방식 편집 기의 특성일 수도 있고, 유닉스 프로그래머들의 독 특한 문화일 수도 있겠지요.

7 (1) 입력 모드 #2 - i : Insert, 현재 커서의 위치에 글자를 삽입 - I : Insert, 커서가 있는 줄(line)의 맨 앞에 글자를 삽입 - a : Append, 현재 커서 위치의 다음 칸에 글자를 추가 - A : Append, 커서가 있는 줄(line)의 맨 뒤에 글자를 추가 - o : Open line, 현재의 줄 다음에 새로운 줄을 삽입 - O: Open line, 현재의 줄 앞에 새로운 줄을 삽입 위의 경우 중 i의 예를 들면 아래와 같습니다. vi 파일명 으로 문서작성 형식으로 들어가 i를 누른 후, 아래 쪽에 INSERT표시가 생긴 후 글을 입력시킨 형태입니다. 일단, 입력 모드로 전환되면, 커서의 현재 위치에서 입력 명령에 따라 여러 가지 내용을 입력할 수 있습니다. 영/한 변환은 Shift+Spacebar를 입력하면 됩니다. 아직까지는 단순히 글을 치고 Enter 키를 이용해 줄을 바꾸는 일밖에 할 수 없습니다. 화살표 키를 이용해 커서의 위치를 바꾸어 입력하는 것은 가능합니다. 편집은 대부분 명령모드 상태에서 이루어 집니다.

8 (2) 명령 모드 입력 모드에서 명령 모드로 다시 전환하려면 Esc 키를 누 르기만 하면 됩니다. ESC 키를 누르고 문자를 입력하려고 하면 비프음만 날 뿐 입력은 되지 않을 것입니다. 리눅스에서는 명령모드가 따로 있습니다. 명령모드는 편집 모드라고도 하는데, 글을 입력시키는 방법이 아닌 수정과 편집을 할 수 있는 상태임을 기억해 두어야 합니다. 즉, 명 령모드에서는 복사,삭제, 붙이기. . .등의 작업이 이루어 집 니다. 또한, 입력모드를 통해 삽입 등 잘못된 명령을 내렸 을 때 'u'라는 명령어를 통해서 Undo, 즉 복구가 가능하게 할 수 있습니다.

9 커서의 이동(명령모드) k h l j

10 데이터 삭제(명령모드) 파일 내용을 편집할 때 수정 또는 삭제할 때 사용 x : 문자 : 커서의 문자를 삭제
dw: 단어 : 커서의 단어를 삭제 dd : 줄 : 커서가 있는 줄을 삭제 u : 복귀 : 바로 전에 수행한 명령 취소

11 (3) 콜론 모드 명령모드에서 콜론 모드로 전환하려면 ':'명령을 실행시키면 됩니다. 콜론 모드는 vi에서 사용할 수 있는 명령어들을 이용하는 곳입니다. 윈도우 환경에서라면 메뉴 바와 같은 역할을 한다고 볼 수 있습니다. 파일을 저장하거나 vi를 종료하는 등의 일을 수행할 수 있습니다. 콜론 모드로 들어가려면 Esc를 누른 후 ":"를 누르면 됩니다. 콜론 모드에 들어가게 되면 화면 아래쪽에 ':' 표시가 나타나게 되며, 여기서 원하는 작업에 해당하는 명령을 입력하고 Enter 키를 치면 됩니다. 아래 그림에서 아래쪽에 ":wq"라는 표시가 눈에 뜨일 것입니다. ":" 이 상태가 바로 앞에서 말한 콜론모드의 형태입니다.

12 [3] 종료 종료 명령은 앞에서 잠깐 콜론 모드에서 이루어 집니다. 편집한 데이터를 저장하고 종료하려면, wq(Write and Quit)를 입력합니다. 예) :wq 저장하지 않고, 강제로 종료하려면, q!(Quit!)를 입력합니다. 예) :q! vi를 끝내지 않고, 현재 작업 중인 내용을 저장만 하려면, w를 입력합니다. 예) :w

13 예제#1 %vi test.c int a(int xx, int yy) { int zz; zz= xx* yy;
return(zz); } int b(int xx, int yy) zz= xx + yy; #include<stdio.h> void main() { int x,y,a1,a2; x=18; y=9; a1=a(x,y); a2=b(x,y); printf("%d * %d = %d\n", x,y,a1); printf("%d + %d = %d\n", x,y,a2); }

14 컴파일 및 실행 컴파일 방법하기 %gcc test.c -o test.exe 실행하기 %./ test.exe

15 vi editor 응용

16 테스트 치환 “r” : 문자 “cw” : 단어 “cc” : 줄
단어의 첫 위치에 커서를 위치시킨 후 cw를 누루고, 치환할 단어를 누른 후 “ESC”를 누른다. “cc” : 줄 줄의 아무 위치에나 커서를 위치 시킨 후 cc를 누르고, 치환할 테스트를 입력 후 “ESC”를 누른다.

17 텍스트 붙이기 텍스트를 붙이고자 하는 내용을 먼저 버퍼에 복사한 다음, 버퍼에 있는 내용을 원하는 위치에 붙이면 된다.
“yy” : 현재 줄을 버퍼로 복사 “p” : 현재 줄을 다음에 버퍼 내용을 삽입 “:<범위>y” : <범위>의 모든 줄을 버퍼로 복사 “:pu” :현재 줄 다음에 버퍼 내용을 삽입 “:npu”:n번째 줄 다음에 버퍼 내용을 삽입

18 문자열 탐색 파일 내용에서 어떤 특정한 문자열을 탐색하고자 할 때 사용
“/문자열” : 현재 위치에서 파일의 앞쪽으로 이동하면서 문자열 탐색 “?문자열” : 현재 위치에서 파일의 뒤쪽으로 이동하면서 문자열 탐색 “n” : 다음 문자열 탐색 “N” : 역방향으로 다음 문자열 탐색

19 패턴에 의한 치환 특정 문자열을 다른 문자열로 변경하고자 할 때 사용 “:s/문자열1/문자열2”
커서가 위치한 줄에 문자열1을 문자열2로 치환 “:<범위>s/문자열1/문자열2” <범위>안의 모든 줄에 대해서 문자열1을 찾아 각 줄의 첫 번째 문자열1만 문자열2로 치환 “:<범위>s/문자열1/문자열2/g” 각 줄에 2개 이상 있어도 모두 치환 “:<범위>s/문자열1/문자열2/c” 치환할 때 치환 할 것인지 묻는다.

20 파일 저장과 불러오기 작성된 또는 수정된 내용을 파일에 저장 하기 편집상태에서 다른 파일을 불러오고자 한다면 “:w”
현재의 파일명으로 파일에 저장 “:w 파일명” 파일명으로 저장 (다른 이름으로 저장) “:w!” 파일의 소유자가 나이고 읽기로 되어 있는 경우 강제로 저장한다. 편집상태에서 다른 파일을 불러오고자 한다면 “:r 파일명” 파일명을 현재위치에 삽입 “:e 파일명” 현재파일 대신에 파일명의 내용을 읽는다.

21 vi 끝내기 “:q” “:q!” “:wq” “wq 파일명” “zz” 저장하였다면 vi를 빠져나간다.
다른이름(파일명)으로 저장하고 빠져나간다. “zz” 작업내용을 저장 후 빠져나간다

22 쉘 명령 사용 Vi편집기 상에서 쉘을 수행 할 때 “:!명령” “:sh” Vi를 중단하고 지정한 명령을 수행

23 그 밖의 유용한 편집 명령 “:set number” : 줄 번호 삽입 “:set nonumber” : 줄 번호 제거
“J” : 현재 줄과 다음 줄을 연결 “.” : 바로전에 수행한 명령 재 수행 “~”:현재 커서의 한 문자를 소문자 혹은 대문자로 변경 “^L” : 현재의 화면을 다시 그린다.


Download ppt "Vi editor."

Similar presentations


Ads by Google