'vi Editor'에 해당되는 글 1건

  1. 2007.05.30 vi Editor 사용법...

네이버 펌...
사실은.. 아직 써도 써도 햇갈려서 스스로 보려고 긁어온 것이랍니다.. ㅎㅎ.

----------------------------------------------------------------------------------------------------

 vi 에디터


[1] 시작

vi의 실행은 한글 환경에서 vi를 입력하면 되고, 콘솔모드에서 한글을 다루려면, han을 먼저 입력한 뒤, vi를 입력하면 됩니다. vi를 실행시키는 방법은 간단합니다. 셸상에서 'vi'라고 입력하고 Enter 키만 누르면 된다. 그러면 새로운 문서를 편집할 수 있는 환경이 만들어집니다.

예) >vi

기존의 문서를 편집하고자 할 때에는 파일의 이름을 구체적으로 명시합니다.

예) >vi file1

지정한 파일의 내용을 읽기 전용으로 열어서 볼 때는 다음과 같이 명시합니다.

예) >vi -R file

>view file

[2] vi의 세가지 모드

① 입력 모드 - i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 상태

② 명령 모드(Esc모드) - ESC키를 누른 상태

③ 콜론 모드(Ex모드) - ESC키를 누르고, :(콜론)을 입력한 상태


그리고, 이러한 기본적인 모드들을 다른 편집기의 활용과 비교해보자면, 다음과 같습니다.


① 입력 모드 - 다른 편집기에서 타이핑을 하여 파일의 내용을 입력하는 과정

② 명령 모드 - 다른 편집기의 편집(Edit) 메뉴에서 제공하는 복사(Copy), 붙이기(Paste),삭제(Delete) 등의 편집 기능의 활용

③ 콜론 모드(ex 모드) - 다른 편집기의 파일(File) 메뉴에서 수행하는 열기(Open), 저장 (Save), 다른 이름으로 저장(Save as) 등의 명령 수행


vi는 실행될 때 명령 모드에서 시작하고, 실행을 종료할 때에는 콜론 모드에서 종료 명령을 수행한다. 또한 vi는 대문자와 소문자 구분을 확실히 해두어야 한다


(1) 입력 모드

- i : Insert, 현재 커서의 위치에 글자를 삽입

- I : Insert, 커서가 있는 줄(line)의 맨 앞에 글자를 삽입

- a : Append, 현재 커서 위치의 다음 칸에 글자를 추가

- A : Append, 커서가 있는 줄(line)의 맨 뒤에 글자를 추가

- o : Open line, 현재의 줄 다음에 새로운 줄을 삽입

- O: Open line, 현재의 줄 앞에 새로운 줄을 삽입

(2) 명령 모드

입력 모드에서 명령 모드로 다시 전환하려면 Esc 키

명령모드는 편집모드라고도 하는데, 글을 입력시키는 방법이 아닌 수정과 편집을 할 수 있는 상태

잘못된 명령을 내렸을 때 'u'라는 명령어를 통해서 Undo, 즉 복구가 가능

(3) 콜론 모드

명령모드에서 콜론 모드로 전환하려면 ':'명령을 실행

[3] 종료

편집한 데이터를 저장하고 종료하려면, wq(Write and Quit)를 입력.

예) :wq

저장하지 않고, 강제로 종료하려면, q!(Quit!)를 입력

예) :q!

vi를 끝내지 않고, 현재 작업 중인 내용을 저장만 하려면, w를 입력

예) :w

[4] 정규표현식의 특수 기호들

- . : 한글자를 대표하는 기호 (dos 의 ? 와 동일)

- * : 여러개의 문자를 동시에 대표하는 기호

- ^ : 줄의 처음시작

- $ : 줄의 맨끝

- % : 처음줄부터 끝줄까지

- [a-z] : a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z 를 대표

- [A-Z] : A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z 를 대표

- [AB] : A 또는 B

[5] 명령 모드(ESC 모드)에서 사용되는 몇가지 기호

- G : 화일의 맨끝으로

- ^ : 현재줄의 맨앞 (빈칸무시)으로

- 0 : 현재줄의 맨앞으로

- $ : 현재줄의 맨 뒤로

- w : 다음 단어로

- b : 이전 단어로

[6] 커서 움직이기

 명령모드 상태에서 커서를 마음대로 움직일 수 있습니다.

① 글자 단위 이동


- h : 커서를 한칸 왼쪽으로 이동하는 명령

- j : 커서를 한줄 아래로 이동하는 명령

- k : 커서를 한줄 위로 이동하는 명령

- l : 커서를 한칸 오른쪽으로 이동하는 명령

② 줄 단위 이동

- ^ : 빈칸을 무시하고, 커서를 현재 줄의 첫글자로 이동하는 명령

- 0 : 커서를 현재줄의 처음으로 이동하는 명령

- $ : 커서를 현재줄의 맨끝으로 이동하는 명령

- % : 짝을 이루는 기호 확인하기

- + : 커서를 다음줄의 처음으로 이동하는 명령

- - : 커서를 이전 줄의 처음으로 이동하는 명령

- Return : 커서를 다음줄의 처음으로 이동하는 명령

- n| : 현재줄의 n 번째 열로 (n은 임의의 숫자)

- H(Home) : 커서를 화면상에 처음줄로 이동하는 명령

- M(Middle) : 커서를 화면상에 중간줄로 이동하는 명령

- L(Last) : 커서를 화면상의 마지막줄로 이동하는 명령

- nH : 화면상의 처음줄로부터 n 줄 밑으로 이동(n은 임의의 숫자)

- nL : 화면상의 마지막줄로부터 n 줄 위로(n은 임의의 숫자)

- gg : 맨 마지막줄로

- n : n 번째줄로

③ 단어 단위 이동 - w(word) : 커서를 다음단어의 첫글자로 이동하는 명령

- b(back) : 커서를 이전단어의 첫글자로 이동하는 명령

- e(end) : 커서를 다음단어의 끝 글자로 이동하는 명령

- E : ?, ! 등 구두점을 무시하고, 현재 단어의 끝으로 이동

④ 화면단위 이동

- Control + F (Forward) : 한화면 밑으로 이동

- Control + B (Backward) : 한화면 위로 이동

- Control + D (Down) : 반쪽화면 밑으로 이동

- Control + U (Upon) : 반쪽화면 위로 이동

- Control + L : 화면 재표시 (글자가 깨졌을 경우; 윈도의 F5와 비슷)

- Control + R(edraw) : 화면 재표시 (글자가 깨졌을경우)

[7] 편집하기

① 복사, 붙이기, 합치기

- y (Yank) : 복사하기

- yy : 한 줄 전체의 내용을 복사한다

- y$ : 현재 위치에서 그 줄의 끝까지 복사한다

- yG : 현재 위치에서 파일의 끝까지 복사한다(G는 파일의 마지막 줄)

- p (Put or Paste) : 붙이기

- np : n번만큼 p 명령을 반복. 2p라면 버퍼의 내용을 두 번 붙여넣는다

- P : 위로(왼쪽으로) 붙이기


② 지우기, 복구하기, 바꾸기

- d$ : 커서가 있는 위치에서 그 줄의 끝까지 지우기

- D : 커서부터 줄의 끝까지 삭제합니다. (d$ 와 동일)

- d (Delete) : 지우기


- dd : 현재커서가 위치한 줄의 전체를 삭제합니다.

- ndd : n줄지우기 (n 은 임의의숫자)

- dw : 한단어 지우기

- d move : 커서가 위치한 곳부터 move까지 삭제

- u (Undo) : 되살리기 명령으로 버퍼에 저장되어 있는 원래의 내용을 복구

- 2u : 두번복구하기

- c (Change) : 바꾸기

- cw : 한단어 바꾸기

- r (Replace) : 한글자 바꾸기

- R : 바꾸면서 삽입이 아닌 수정(modify) 모드로 들어간다. 윈도에서 Insert 키를 누르고 수정 상태로 들어가는 것과 같다

[9] 찾기

- /요 : 현재 위치에서 아래쪽 방향으로 '요'라는 단어를 찾는다

- ?요 : 현재 위치에서 위쪽 방향으로 '요'라는 단어를 찾는다

[10] 편집모드 지정하기

- i : insert 현재커서위치

- I : 현재커서가 위치한 줄의 맨처음에

- a : append 현재커서위치 바로 다음에

- A : 현재커서가 위치한 줄의 맨끝에

- o : open 현재커서위치 바로 아래줄에

- O : Open 현재커서위치 바로 윗줄에


[12] 버퍼 이용하기

- "xyy : x 라는 이름의 버퍼에 한줄 복사 하기

- "xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기

- := : 현재 줄번호 보여주기

- :/pattern/ = pattern 이 위치한 줄번호 보여주기


[13] ex 명령어 익히기

① ex 명령어의 기본형식

예)

- :1,10 co 50 : 1 줄 부터 10 줄 까지를 50 줄 이후로 복사

- :34,50 d : 34 줄 부터 50 줄 까지 삭제

- :100,150 m 10 : 100 줄 부터 150 줄까지를 10 줄 이후로 옮김

- :.,$ d : 현재줄부터 끝까지 지우기

- :/pattern/ d : pattern 이 들어있는 줄 지우기

② g 옵션 붙여 문서전체에 적용하기

- :g/리눅스 : 파일 전체에서 '리눅스'가 있는 마지막 줄로 이동한다

- :g/리눅스/ p : 파일 전체에서 '리눅스'가 있는 줄을 보여준다

- :g/리눅스/ nu : 파일 전체에서 '리눅스'가 있는 줄을 번호와 함께 보여준다

- :60,100 g/리눅스/ p : 60~100줄 사이에서 '리눅스'가 있는 줄을 보여준다

- :g/리눅스/d : 문서 전체에서 '리눅스'가 있는 줄을 제거한다

③ 저장 및 종료하기

- :w : 저장하기 (write)

- :q : 종료하기 (quit)


- :wq : 저장하고 종료하기

- :w! : 강제로 저장하기 (read-only 로 열었을경우)

- :q! : 편집한 내용을 저장하지 않고 종료하기

- :w new_file_name : 새로운 파일이름으로 저장하기

- :230,$ w file_name : 230 줄부터 끝줄까지 file_name 으로 저장하기

- :.,600 w file_name : 현재줄부터 600줄까지 file_name 으로 저장하기

- :340,$ w >> new_file : 340줄부터 끝줄까지 new_file 에 추가하기


[14] 쉘 명령실행

- :!! : vi를 중단하고 이전의 셸 명령을 실행

- :sh : vi를 중단하고 셸을 실행

- :!csh : vi를 중단하고 새로운 C쉘을 실행

[19] 패턴에 의한 치환

- :s/pattern/replace/ : 현재 줄을 치환한다

- :lines/pattern/replace/ : 지정한 줄을 치환한다

- :line,lines/pattern/replace/ : 지정한 범위를 모두 치환한다

- :%s/pattern/replace/ : 모든 줄을 치환한다

 

'Study.. > Linux' 카테고리의 다른 글

검색 로봇 막기..!!  (0) 2007.08.23
Adding A System Call  (0) 2007.06.03
Linux System Call Table  (0) 2007.06.03
리눅스 프로그래머를 위한 가이드  (0) 2007.06.03
A.P.U.E. - source & contents  (0) 2007.05.19
Posted by Yoons...
,