unix vi 명령

unix and linux 2005. 2. 28. 20:09

UNIX  VI 사용법



Quick-reference vi
==================
                                
작성자 : 이재용 KREONet, SERI


Cursor를 옮기는 여러가지 방법

                        k(-)
                         △ 
                         ||
               h(bs)     <-----          ----->   l(sp)
                         ||
                         ▽
                         j(+)


     h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변경됩니다.
     ()에 있는 키를 선택하여도 됩니다.

     bs : BackSpace                         sp : SPace bar

화면을 옮기는 여러가지 방법

     ^f     -  (FORWARD) 화면을 one page 앞으로 옮김
     ^b     -  (BACKWARD) 화면을 one page 뒤으로 옮김
     ^d     -  (DOWN) 화면을 반 page 앞으로 옮김
     ^u     -  (UP) 화면을 반 page 뒤으로 옮김

        * ^ 는 키보드의 를 나타내는 것입니다.

한 화면 안에서 cursor를 옮기는 방법

     H     -  HOME, 한 화면의 top line으로 옮긴다.
     M     -  MIDDLE, 한 화면의 중간으로 옮긴다.
     L     -  LAST, 한 화면의 마지막  line으로 옮긴다.
     G     -  GOTO,  화일의 마지막  line으로 옮긴다.
     nG     -  GOTO nth line the file (or :n)
     ^G     -  GIVES file status

한 line 안에서 cursor를 옮기는 방법

     w     -  WORD, 한단어 앞으로
     b     -  BACKWARD, 한단어  뒤로
     e     -  END, 현재 cursor가 위치한 맨 뒤로
     o     -  zero, line의 맨 앞으로 (or ^)
     $     -  end, line의 맨뒤로

검  색

     /pattern -  scan (/) 'pattern'이라는 글자를 현재 cursor가
              위치한 곳의 다음 단어를 검색
     ?pattern -  scan (?) 'pattern'이라는 글자를 현재 cursor가
              위치한 곳의 앞 단어를 검색
     n      -  앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색
     N      -  앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를 검색

vi를 빠져나가는 방법

     :q!     -  화일의 내용을 저장하지 않고 exit
     :w     -  WRITE, vi를 빠져나가지 않으면서 내용을 저장
     :wq     -  WRITE and QUIT, vi를 빠져나가면서  내용을 저장
     ZZ     -  :wq의 명령과 같다.

삽입 mode

Note :     ESC (escape key) 는 삽입(insert)를 중지 시키고 명령어 mode로 돌아가는 키이다.

     i     -  INSERT, cursor 위치 부터 문자 삽입
     I     -  INSERT, line의 맨 앞부터 문자 삽입
     a     -  APPEND, cursor 다음 위치 부터 문자 삽입
     A     -  APPEND, cursor 위치한 line의 끝부터 문자 삽입
     o     -  OPEN line, 현재의 line 다음에 line 삽입
     O     -  OPEN line, 현재의 line 앞에 line 삽입
     r     -  REPLACE, 한 문자만을 대치 (does not require ESC)
     R     -  REPLACE, ESC 키가 입력될때 까지 대치 
     cw     -  CHANGE word, cursor가 위치한 곳의 단어 끝까지 대치
                (cnw - change n number of words)
     C     -  CHANGE, cursor가 위치한 곳에서 line 끝까지 대치
     u     -  UNDOES, 마지막 명령의 취소
     U     -  UNDOES, line전체를 원 상태로 복구

Note : INSERT mode 를 만든는 모든 문자(i, a, o, r, c, s <대문자 포함>)
     를 사용하는 경우 insert mode에서 입력 한 내용을  취소하고자
     하면, ESC 를 누르고 undo를 수행하는 u를 입력하면 된다.

Yanking : (Copying)
     
     Y     -  YANKS (copies) line을 사용자가 보이지 않는 buffer에 저장
     nY     -  YANKS n , n line을 사용자가 보이지 않는 buffer에 저장

Deleting :

     x     -  deletes, 문자 하나를 삭제 (also 'd sp')
     dw     -  DELETES words, 문자 하나를 삭제 
     D     -  DELETES, cursor가 있는 곳에서 부터 line끝 까지 삭제 
     dd     -  DELETES lines, line하나를 삭제 하고 보이지 않는 buffer에 저장
     ndd     -  DELETES n, n line을 삭제 하고 보이지 않는 buffer에 저장
             (i.e., 10dd deletes 10 lines)

Putting :

     p     -  PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의
                내용을 삽입
     P     -  PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의
                내용을 삽입
     xp     -  cursor 가 위치한 문자와 다음 문자를 교환

Interactive edit : (search and replace)

     /pattern -  find pattern to be replaced (as above)
     cw      -  use a replacement comand (cw, dw, r, s, etc.)
     n      -  find next occurrence of 'pattern'
           -  repeat command

     * 앞의 내용 참고

Global replacement :

        :1,$s/string1/string2/g
        1 line부터 끝까지 string1 를 string2 로 대치
     e.g.,     :1,$s/sun/SUN/g

Global delete :

        :g/pattern/d
        1 line부터 끝까지 pattern 을 제거
     e.g.,     :g/###/d (to delete lines inserted by cc file.c | & error-v)

Reading in files :

     :r  file2 - cursor가 위치한 다음 line에 file2를 삽입

Editing between files : (not needed for SUN system users)

     :w     -  다른 화일을 읽기전에 현재의 화일을 저장 (file1)
     :e file2  -  두번째 file을 edit하기 위해 load (file2)
     :w     -  두번째 화일을 저장 (file2)
     :e #     - original file 을 수정하기 위해 load (file1)

     example :w          /* file1을 빠져 나가기전에 저장*/
          :e file2     /* file2 load      */
               "x4Y     /* buffer 'x'에 file2의 top 4 line을 저장 */
          :e #          /* file1 을 load (no changes) */
               "xP     /* buffer 'x'에 저장 되어 있는 내용을 put */


Miscellancenous commands :

     :! cmd     -  editor안에서 shell command를 수행 하고자 할때
     ~     -  (tilde or 'wavy'), 대문자를 소문자로 소문자를 대문자로 교환
     %     -  한 line안에서 (,),{,},[,]를 검색
     mx     -  문자 x에 현재 위치를 표시
        d'x     -  문자 x에 표시된 위치 부터 현재 cursor 위치 까지 삭제
     ^V     -  allows for insertion of control characters (e.g., ^L)
     ?string -  scan (/) backward for 'pattern'
     :n,m w file -  n line에서 m line까지 내용을  file 이라는 이름으록
                 (e.g., 15,25 w file)
     J     -  JOINS, cusor가 있는 line과 다음 line을 join 
     :set ai     -  editor 가 자동적으로 insert tabs을 삽입
     :set list -  special characters 를 보여줌
               (i.e., non-printable characters)
     :set nows -  stop wraparound search
     :set ts=n -  set tab stops to be other than the default (8)
     :set wm=n -  set wrap margin (automatic carriage return insert at n)

example :     setenv EXINIT 'set ai wm=8 ts=4|map F W|map @ :w^M:e#^M' 

'unix and linux' 카테고리의 다른 글

Yum  (0) 2007.06.07
Virtual Box 설치하기  (0) 2007.06.07
페도라 설치  (0) 2007.06.06
Richard Stevens  (0) 2006.07.20
[펌] ssh 포트(22번) 변경하기  (0) 2006.01.21
Posted by '김용환'
,