1 / 35

vi 편집기 사용하기

vi 편집기 사용하기. 유닉스의 편집기. 화면 편집기 vi 모든 UNIX 에 있음 . emacs 막강한 기능 제공 . 설치해서 사용해야 함. vi 의 동작구조. 파일 내용을 잘못 수정한 경우 버퍼의 내용 무시 작업 취소 기능 제공. 편집기에서 파일 호출. 2. 편집기에서 파일 수정. 디스크. 버퍼 ( 임시 저장장소 ). 3. 파일 저장. vi 의 동작모드. Enter. Esc. Esc. 입력한 내용이 버퍼로 옮겨져 추가 , 수정됨.

eara
Télécharger la présentation

vi 편집기 사용하기

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. vi 편집기사용하기

  2. 유닉스의 편집기 • 화면 편집기 • vi • 모든 UNIX에 있음. • emacs • 막강한 기능 제공. 설치해서 사용해야 함.

  3. vi의 동작구조 • 파일 내용을 잘못 수정한 경우 버퍼의 내용 무시 • 작업 취소 기능 제공 • 편집기에서 파일 호출 2. 편집기에서 파일 수정 디스크 버퍼 (임시 저장장소) 3. 파일 저장

  4. vi의 동작모드 Enter Esc Esc 입력한 내용이 버퍼로 옮겨져 추가, 수정됨 • Vi에서는 대소문자를 별도의 명령으로 해석한다. 입력한 내용을 명령어로 해석 i,I,a,A,o,O 명령 모드 입력 모드 vi 시작 vi 종료 ZZ :, /, ? 커서이동 페이지이동 글자 삭제 줄 삭제 등 마지막행 모드 HDD vi 종료 q,q! 검색,저장 바꾸기 줄 이동 등 w 특별명령처리

  5. vi 시작하기 telnet hanbit.co.kr telnet hanbit.co.kr $ vi $ vi first.txt • vi • 새로운 파일 시작 • 파일 저장할 때 이름 지정 • vi 파일_이름 • 지정한 이름이 없으면 새로운 파일 생성 • 지정한 이름이 있으면 기존 파일 열기

  6. vi 초기화면 80칼럼 • 화면크기에 따라 행과 칼럼수는 달라진다. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ “first.txt” [새 파일] 빈 줄 26행

  7. 입력 명령 Esc • 입력 명령(명령모드->입력모드) 주의! 입력이 끝나면 “입력모드”에서 “명령모드”로 돌아와야 한다.

  8. 저장 및 종료명령 • 저장 명령 • 저장하거나 종료하려면 “명령모드”로 돌아와야 한다. • 종료 명령(저장후 종료 또는 그냥 종료)

  9. 입력 및 저장 실습 [1] telnet hanbit.co.kr $ cd $ mkdir Unix/ch4 $ cd Unix/ch4 $ vi hello.c • 실습하기 • 실습 디렉토리 구성 • 파일 생성 : hello.c #include <stdio.h> main() { printf(“Hello World!\n”) ; }

  10. 입력 및 저장 실습 [2] telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> main() { printf(“Hello World!\n”) ; } Hello#include <stdio.h> main() { printf(“Hello World!\n”) ; }Add 한글 New line • 실습하기 • vi hello.c • i • Hello • Esc키 • G • o • New line • Esc키 • :5 • a • Add 한글 • Esc키 • :w hello2.c hello2.c

  11. 커서이동명령 [1] • 화살표 키 이용 • H, J, K, L 키 이용 위로 k l 오른쪽 커 서 h 왼쪽 j 아래로

  12. 커서이동명령 [2] • 지정한 곳으로 이동 • 현재 화면에서 커서 이동

  13. 커서이동명령 [3] • 커서이동 예제 H • 1 #include <stdio.h> • 2 • 3 main() { • 4 char c; • 5 • 6 printf(“Hello, C World\n”); • 7 printf("=====\n"); • 8 printf(“select menu item\n"); • 9 printf("1. unix\n"); • 10 printf("2. linux\n"); • printf("=====\n"); • 12 } • ~ • ~ k M w $ ^ e j L b

  14. 커서 이동 실습 telnet hanbit.co.kr #include <stdio.h> main() { printf(“Hello World!\n”) ; } • 실습하기 • vi hello.c 커서를 1행으로 이동 : 1G 또는 :1 1행의 두번째 단어로 이동 : w 2행으로 이동 : j 커서를 좌로 이동 : ㅣ 마지막행으로 이동 : G 또는 :$

  15. 화면이동 • 화면에 나타나지 않은 부분으로 화면 이동 #include <stdio.h> main() { printf(“Hello 1\n”); printf(“Hello 2\n”); printf (“Hello 8\n”); } telnet hanbit.co.kr printf(“Hello 3\n”); printf(“Hello 4\n”); printf(“Hello 5\n”); printf(“Hello 6\n”); printf(“Hello 7\n”);

  16. 화면 이동 실습 telnet hanbit.co.kr # ident # The profile trap “” 2 3 export LOGNAME PATH if [ “$TERM = “” ] ….. • 실습하기 • vi /etc/profile • 왼쪽 순서에 따라 화면 이동을 실습 • :set nu • ^u • ^d • ^f • ^b • ^y • ^e • ^l • :set nonu

  17. 내용 삭제 및 취소 • 명령모드에서 동작

  18. 삭제 및 취소 실습 telnet hanbit.co.kr telnet hanbit.co.kr Hello#include <stdio.h> main() { printf(“Hello World!\n”) ; }Add 한글 New line #include <stdio.h> main() { printf(“Hello World!\n”) ; } • 실습하기 • vi hello2.c • 1G • 5x • jjjj • l • D • j • dd • u • dd • :w

  19. 내용 수정 • 명령모드에서 동작

  20. 수정 실습 telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> main() { printf(“Hello World!\n”) ; } #include <stdio.h> abcd[ ] { write(“Hello World!\n”) ; } • 실습하기 • vi hello2.c • 1G • j • cw • abcd • Esc키 • l (소문자 L) • r [ l • r ] • j j b • 6s • write • Esc키 • :w

  21. 편집기능 –복사, 잘라내기, 붙이기 • 명령모드에서 동작 • 행 삭제와 잘라내기는 동일한 동작이다.

  22. 버퍼의 사용 • 버퍼 • Vi는 작업 내용을 버퍼에 저장 –실행 취소 가능 • 복사하기, 잘라내기에 사용 • 버퍼 종류 • Unnamed buffer (이름 없는 버퍼) • Named buffers (이름이 있는 버퍼) “a, “b, …“z • Numbered buffers(번호가 있는 버퍼) “1, “2, …,“9 • 사용 예 • “a3yy -> 현재 행부터 아래로 3줄을 a버퍼에 저장 • “ap -> a버퍼의 내용을 붙이기

  23. 범위지정 방법 • 편집하는 범위를 지정하는 방법 • 마지막행 모드에서 사용 • “: 범위 편집_명령” 형태로 사용

  24. 마지막행 모드에서 복사와 잘라내기 • 마지막행 모드에서 사용

  25. 버퍼를 이용한 복사 실습 telnet hanbit.co.kr telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> abcd[ ] { write(“Hello World!\n”) ; } #include <stdio.h> abcd[ ] main() { printf(“Hello World!\n”) ; } #include <stdio.h> abcd[ ] { write(“Hello World!\n”) ; write(“Hello World!\n”) ; } • 실습하기 • vi hello2.c -> hello.c로 복사 hello2.c hello.c 6) p 7) “ayy 8) :w 9) :e hello.c 10) “ap • :4 • 2) yy • 3) p • 4) kkk • 5) dd

  26. 검색 기능 • 마지막행 모드에서 사용

  27. 문자열 탐색 실습 telnet hanbit.co.kr #include <stdio.h> abcd[ ] { write(“Hello World!\n”) ; write(“Hello World!\n”) ; } • 실습하기 • vi hello2.c • /abcd • n • ?write • n • N

  28. 바꾸기 기능 • 마지막행 모드에서 사용

  29. 범위를 이용한 바꾸기 실습 telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> abcd[ ] { write(“Hello World!\n”) ; write(“Hello World!\n”) ; } #inclube <ctbio.h> main[ ] { write(“Hi Worlb!\n”) ; write(“Hi Worlb!\n”) ; } • 실습하기 • vi hello2.c • j • :s/abcd/main/ • :%s/d/b/g • :1,2 s/st/ct/g • :1,$ s/Hello/Hi/g • :w

  30. 기타 기능 [1] • 파일 읽어오기 / 여러 파일 편집 • vi에서 쉘 명령 실행

  31. 쉘 명령 실행 실습 telnet hanbit.co.kr #inclube <ctbio.h> main[ ] { write(“Hi Worlb!\n”) ; write(“Hi Worlb!\n”) ; } • 실습하기 • vi hello2.c • :!ls -l • Esc키 • :sh • ls -l • exit

  32. 기타 기능 [2] • 알아두면 유용한 명령키들

  33. 기타 명령어 실습 telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> abcd[ ] main() { printf(“Hello World!\n”) ; } #include <stdio.h> ABCD[ ]main() { printf(“Hello World!\n”) ; } • 실습하기 • vi hello.c • :2 • J • ~ • . • . • . • :w

  34. vi 환경 설정 • vi의 환경을 설정하는 특수명령과 변수들

  35. 실습 최종 파일 telnet hanbit.co.kr telnet hanbit.co.kr #include <stdio.h> ABCD[ ]main() { printf(“Hello World!\n”) ; } #inclube <ctbio.h> main[ ] { write(“Hi Worlb!\n”) ; write(“Hi Worlb!\n”) ; } • hello.c • hello2.c

More Related