1 / 19

Lecture 3. vi 편집기 사용법

Lecture 3. vi 편집기 사용법. Spring 2006 Course, Sungkyunkwan University Hyunseung Choo choo@ece.skku.ac.kr. VI 사용법. 유닉스 기본적으로 콘솔 환경에서 대부분의 작업을 처리하기 때문에 에디터를 잘 사용하는 것이 무엇보다 중요 vi ' Vi sual edit' 의 약자 , 유닉스 환경의 대표적인 편집기 vi 의 장점 키보드로 모든 것이 가능하다 많은 명령들이 매우 단순하며 일관성이 있다. VI 사용법.

dawn
Download Presentation

Lecture 3. 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. Lecture 3. vi 편집기 사용법 Spring 2006 Course, Sungkyunkwan University Hyunseung Choo choo@ece.skku.ac.kr

  2. VI 사용법 • 유닉스 • 기본적으로 콘솔 환경에서 대부분의 작업을 처리하기 때문에 에디터를 잘 사용하는 것이 무엇보다 중요 • vi • 'Visual edit'의 약자, 유닉스 환경의 대표적인 편집기 • vi의 장점 • 키보드로 모든 것이 가능하다 • 많은 명령들이 매우 단순하며 일관성이 있다

  3. VI 사용법 • 버퍼(buffer) • 삽입, 삭제 시 이를 파일에 직접 반영하지는 않고, 메모리의 버퍼라는 임시 저장소에 일단 반영해 두었다가 저장 명령을 수행할 때 비로소 파일에 적용 • 종류 • '스크린 버퍼' • 파일에 대한 기본적인 버퍼 외에 현재 화면 창을 통해 보이는 • '라인 버퍼' • 편집 중인 스크린 버퍼에서 커서가 위치한 줄에 해당 • '임시 버퍼' • 블록 설정 • '이름 버퍼' • 이런 임시 버퍼를 클립보드(clipboard)처럼 여러 개 활용할 수 있도록 a부터 z까지 이름을 붙여서 활용 • '숫자 버퍼' • 삭제한 부분을 삭제한 반대 순서로 다시 살릴 수 있도록 여유를 제공

  4. VI 사용법 • 기본적인 편집명령 • 명령모드 • 키 입력을 통해 vi에게 명령을 내리는 모드 • 키 입력이 바로 명령이 되는 모드로서 쓴 내용을 삭제, 복사 및 붙이기 할 때 사용 • 입력모드 • 실제 문서를 편집하는 모드 • 실제로 화면에 출력되면서 글자의 입력이 가능하게 됨 명령모드 Enter Esc Esc i, a, o, s :, /, ? ex모드 입력모드 [Fig. 1] vi 모드 전환

  5. VI 사용법 • 기본적인 편집명령 • ex모드(콜론 모드) • 라인 에디터인 ex 에디터의 기능을 사용하는 모드 • 특정 패턴들을 특정 문자열로 대체 또는 일괄적으로 처리해야 할 작업 수행

  6. VI 사용법 • 기본적인 편집명령 • vi를 실행시키면 처음에는 명령 모드 상태 • 명령 모드에서 ':' 키를 누르면 ex 모드로 변환 • 'a', 'i' 등의 키를 누르면 입력모드로 전환 • 특정 파일을 편집하기 위해 열려면 vi [filename]을 shell prompt에서 실행 • 이렇게 연 파일을 편집모드로 들어가 편집하려면 'i'를 입력 • 종료하려면 'ESC' 키를 눌러서 명령 모드로 전환 • 'ZZ'나 ':wq'를 누르면 저장하고 나오고 ':q!'를 누르면 저장하지 않고 종료 • 명령 모드에서 'u' 즉' undo 명령으로서 잘못된 명령을 바로 되돌릴(undo)할 수 있다.

  7. VI 사용법 • vi 명령을 실행 • vi 에도 여러 가지 버전이 있어서 약간 씩의 차이가 있다 • vi 에서 가장 어려운 명령어를 먼저 습득 • :q라고 입력 • 'quit' 의 약자 • vi가 다른 '평범한' 문서 편집기와 비교할 때 가장 특이한 점은 프로그램의 상태가 '명령모드'와 '입력모드' 로 구분되어 있다는 점

  8. VI 사용법 • 'i'로 시작하는 내용을 입력해 보자 • 명령모드에서 입력하는 내용을 그림에서는 <>로 표시 • 'i' 키를 누르는 것만으로는 화면에 아무 변화도 없을 것이다. 그 이후에 입력하는 내용이 비로소 화면에 나타난다 • "i"는 '삽입하기(insert)' 명령 • 그 이후에 입력되는 키는 모두 문서의 내용으로 간주, 즉 입력모드로 전환 • 편집 중인 문서를 저장하려면 ':q'만큼이나 그럴 듯한 명령이 존재 <i>when you're weary, <enter>feelin' snail,<esc>

  9. VI 사용법 • 편집 중인 문서를 저장 • ':w' • '파일에 쓰기(write)' 명령 • 주의 <Esc>키 • 입력모드에서 명령모드로 돌아가기 • 현재상태가 입력모드인지 명령모드인지 잘 알 수 없을 경우 • '<Esc>' 키를 누르기 • 입력모드에 있었다면 당연히 명령모드로 바뀜 • 명령모드 였다면 그냥 '삑' 하는 벨 소리 한번 낸다 • vi words.txt 입력 • 좀 전에 입력했던 내용 다음에 계속해서 새로운 내용을 추가 • 'i' 명령 • 현재 커서의 위치에 문자를 집어 넣고 원래 있던 문자는 뒤로 밀어낸다 • 커서의 뒤에 덧붙이는 명령을 써야겠다

  10. VI 사용법 • 'a'키 • '덧붙이기(append)' 명령 • 여기까지 입력하고 일단 명령모드로 돌아가기(어떻게 ?) • :w • 파일이름을 지정하지 않으면 그냥 현재의 이름으로 저장 • :wq • 파일 저장 후 종료 • ZZ • 편집 중인 파일의 내용이 수정되었으면 저장 한 후 종료하고 그렇지 않으면 그냥 빠져 나옴 • o • 현재 커서가 있는 줄의 밑에 새로운 줄을 연다 • O • 현재커서가 있는 줄을 아래로 밀어내고 그 자리에 새로운 줄을 연다 • 지금까지 쓴 명령어 중 일부는 ':' 로 시작되는걸 알 수 있다

  11. VI 사용법 • G • 커서가 어느 위치에 있었건 간에 문서의 마지막 줄의 첫 문자에 가서 대기 • 1G • 문서의 첫 줄의 첫 문자에 커서가 옮겨진다. • 'G' 명령 앞에 붙은 숫자는 줄 번호를 나타냄 • 만일 '3G' 라고 하면 당연히 3번째 줄로 커서가 옮겨간다. • 문제점 • 몇 줄 안 되는 문서야 눈 어림으로 몇 번째 줄인지 알 수 있지만 그렇지 않은 경우는 어떻게 할까? • :set nu • 모든 줄의 앞에 줄 번호가 매겨짐 • 줄 번호가 편하기는 하지만 때로는 보기에 불편할 수도 있다 • 줄 번호를 없애려면  :set nonu

  12. VI 사용법 • w • 커서가 한 단어 오른쪽으로 이동 • 새 단어의 첫 문자에 위치 • 단어 (word)단위로 이동하라는 명령 • b • 이건 거꾸로 (back) 한 단어 이동하라는 명령 • 그런데 이들의 대문자 형태 , 즉  'W' , 'B' 는 어떤 기능을 할까 ? • 한번 시험해보자 • e : 커서 이동명령 • 'w' 와 기능이 유사, 단어의 첫 문자가 아니라 끝(end)  문자에서 멈춘다 • 문서의 첫 줄과 끝 줄 사이를 오가는데 'G' 명령을 사용 • 한 줄의 처음과 끝 사이를 오가는데도 따로 명령이 존재 • ^, $ • '^' 대신 숫자 0을 눌러도 된다. '^' 보다 는 '0' 이 쓰기 편할 것이다

  13. VI 사용법 • H • 커서가 화면의 첫 줄로 날아간다. 이 키는 'high'를 의미 • 'high' 가 있으니 'low' 도 있지 않겠는가? • L • 'H' 'M' 'L' 화면은 그대로이고 커서만 위아래로 이동하는 명령 • 그럼 아예 화면을 옮겨 다니는 명령을 알아보자 • vi에서 화면 : 터미널이 사용자에게 보여주는 특정부분 • 4가지 명령은 모두 '<Ctrl>'키와 함께 쓰인다는 것을 우선 알아두자. 앞과 뒤 방향을 의미하는 forward와 backward 그리고 위와 아래를 의미하는 up와 down 이 네 가지 간단한 단어만 기억하면 된다 • <Ctrl>-f, <Ctrl>-b, <Ctrl>-u, <Ctrl>-d • '<Ctrl>-f' 와 '<Ctrl>-b' 는 한화면 단위 이동 • '<Ctrl>-u'  와 '<Ctrl>-d' 는 반화면 단위로 이동

  14. VI 사용법 • 편집하다 잘못 입력했을 때는 어떻게 할까? • x • 불쌍한 문자 하나를 사형시킨 것이다. 마음이 무겁다고? • u • 'u' 는 명령 취소 '(undo)'를 의미 • 원래 명령취소는 한단계만 지원 (vi 종류에 따라 차이가 있음) • 다시 'u'를 누르면 방금했던 '명령취소' 명령이 취소'재 시행(redo)' • 신나게 x를 눌러댔는데 잘 보니 엉뚱한 곳이었다. 어떻게 하지? • U • 그 줄에 대해서 행해졌던 편집내용이 모두 취소 • 단 편집한 후 커서를 다른 줄로 옮겨가면 정말로 영영 끝남 • 지금까지 작업한 문서가 마음에 안 든다  버리자 • :q • No write since last change (use ! to override) 이게 뭔 소리여? 말인즉슨 수정한 내용을 저장하지 않았으니 그냥은 못 나가겠다

  15. VI 사용법 • :q! • '!'를 써서 '잔말 말고 시키는 대로 하라' • 'u' 명령도 대문자 형태와 쌍을 이룬다 . 'x' 라고 없을 리 없다. • X • 커서가 위치한 곳의 바로 앞 문자가 지워진다 • 커서와 커서가 있던 문자이후의 내용이 한 칸씩 당겨진다 • 지우고 쓰는 걸 한번에 하는 명령은 없을까? • 고치기(change) 명령 'c' 에 대해 알아보자 • cw • 'w'와 'b' 가 어떻게 쓰였는지 생각해보자 • 현재커서가 있는 위치에서 단어 끝까지를 고칠 대상으로 설정

  16. VI 사용법 • C • 현재커서 위치에서 줄의 끝까지 고칠 수 있게 된다. • 만일 한 문자만 바꾸려 한다면 • r (replace) • 현재 커서 위치에 있는 문자를 새로 입력한 문자로 바꾼다. • R • 문자를 바꿔 주고 커서를 하나 다음 문자위로 이동한 후 입력모드를 빠져 나오지 않고 대기 • 다시 문자를 입력하면 새로운 커서 위치의 문자를 바꾼다. 즉 커서가 진행하면서 입력하는 내용으로 원래 있던 내용을 계속 덮어쓴다. 멈추려면 역시 '<Esc>' 키로 입력모드를 빠져 나오면 된다. • 한 문자를 여러 문자로 고치는 경우는 어떨까? • s • 커서가 있는 위치의 한 문자를 지우고 입력모드로 들어간다.

  17. VI 사용법 • 퀴즈?   • 한 줄로 이루어진 내용은 두 줄로 분리하려면 어떻게 할까? • 적당한 위치의 공백문자로 가서 'r'을 누른 후  '<Enter>'를 치면 된다 • 공백문자가 아닌 곳에서 나누려면 그냥 'i' 누른 후 '<Enter>'치고 '<Esc>'키로 명령모드로 돌아오면 된다. • 두 줄로 되어 있는 내용을 한 줄로 만들려면?  (join)명령  J • dd • 보통 같은 소문자 2개로 이루어진 명령은 커서가 있는 줄 전체에 적용된다? • 한 줄 전체를 깨끗이 날려(delete) 버린다. • D • 현재 커서의 위치에서부터 문장 끝까지의 내용을 지워 버린다 • dG • 현재 커서가 있는 줄부터 끝까지 한꺼번에 보내 버린다. • 그럼 현재 줄부터 처음까지 모두 없애는 건 어떻게 할까  d1G

  18. VI 사용법 • 복사하기 (yank) 기능 • yy • 현재 커서가 있는 줄의 내용이 모두 vi의 내부 버퍼에 임시 저장 • 'y' 명령만으로는 도대체 vi 이놈이 무슨 짓을 했는지 알 수 없다. 커서를 적당한 곳에 옮긴 후 • p • 버퍼에 들어가 있던 내용이 그대로 붙여(put) 진다 • 'i'는 커서가 있는 문자의 앞에 'a' 는 커서가 있는 문자의 뒤에 내용을 입력, 'O'는 커서가 있는 줄의 위에 'o' 는 커서가 있는 줄의 밑에 새로운 줄을 열었다 'p'도 유사한 특성을 갖는데 • P • 커서가 있는 줄의 위에 붙여 넣게 된다.

  19. VI 사용법 • 문자열 치환 • ex 모드에서 다음과 같은 명령 실행 • 예

More Related