-- 하드디스크를 털다보니 예전에 공부할때 썻던게 보이네요..
-- 그냥 가져다 붙여놓은것인지.. 편집을한것인지.. 원작자는 모릅니다..ㅡㅜ
-- 어째튼 vi 때문에 고민하시는 분들께는 도움이될지도 모른다는생각에 공개합니다.
-- 글을올리고나니 쫌 깨지는부분이 있어서 txt 파일로도 첨부합니다.(훨씬깨끗.ㅡㅡ)



vi 에디터  

             1 Cursor 위치를 변경하는 명령들 

             2 vi 명령들 

             3 자세한 정보를 가져 오려면... 

              

  명령을 잘 활용하는 방법은 'man' 명령을 이용하는 것입니다. 

  UNIX 명령에 좀 익숙 하신분들은 'man' 명령을 활용 하십시오. 

  

1. 

                       vi Cursor Positioning  

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

    :1G (go                                                            : 

    :                      /\  ^b (back                                : 

    :                      ||                    /\   ^u (up           : 

    |----------------------||--------------------||--------------------| 

    |H (home                                                           | 

    |                               k                   O (open        | 

    |I            i (insert        /\    a (append     P (put        A | 

    |                              |                                   | 

    |O <--------- h <-------  you are here  -------> l -------------->$| 

    |                              |                                   | 

    |M (middle     (backspace      \/    (space bar    p(put           | 

    |                               j                   o (open        | 

    |             Y (yank                         /string              | 

    |                                             n repeat last search | 

    |L (last                                      . repeat last command| 

    |----------------------||--------------------||--------------------| 

    :                      ||                    \/   ^d (down         : 

    :                      \/  ^f (forward                             : 

    :\$G (go                                                           : 

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - " 

 

 

2. vi 명령들  

                  1 Cursor를 옮기는 여러가지 방법 

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

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

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

                  5 검색  

                  6 vi를 빠져나가는 방법  

                  7 삽입 mode  

                  8 Yanking : (Copying 

                  9 Deleting  

                 10 Putting  

                 11 Interactive edit : (search and replace 

                 12 Global 명령 

                 13 Reading in files  

                 14 여러 화일의 edit 

                 15 Miscellancenous commands  

 

1 Cursor를 옮기는 여러가지 방법  

                                       k(- 

                                        /\  

                                        || 

                        h(bs    <-----       ----->   l(sp 

                                        || 

                                        \/ 

                                       j(+ 

        h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변  

        경됩니다. 

        (에 있는 키를 선택하여도 됩니다. 

         bs : BackSpace                       sp : SPace bar " 

 

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

                  ^f  -  (FORWARD 화면을 one page 앞으로 옮김 

                  ^b  -  (BACKWARD 화면을 one page 뒤으로 옮김 

                  ^d  -  (DOWN 화면을 반 page 앞으로 옮김 

                  ^u  -  (UP 화면을 반 page 뒤으로 옮김 

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

 

3 한 화면 안에서 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  

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

 

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

                      w  -  WORD, 한단어 앞으로 

                      b  -  BACKWARD, 한단어  뒤로 

                      e  -  END, 현재 cursor가 위치한 맨 뒤로 

                      o  -  zero, line의 맨 앞으로 (or ^ 

                      $  -  end, line의 맨뒤로" 

  

5 검색  

        /pattern -  scan (/ 'pattern'이라는글자를 현재 cursor가 

                    위치한 곳의 다음 단어를 검색 

        ?pattern -  scan (? 'pattern'이라는 글자를 현재 cursor가 

                    위치한 곳의 앞 단어를 검색 

        n     -  앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색 

        N     -  앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를  

                  검색" 

 

6 vi를 빠져나가는 방법  

           :q!  -  화일의 내용을 저장하지 않고 exit 

           :w   -  WRITE, vi를 빠져나가지 않으면서 내용을 저장 

           :wq  -  WRITE and QUIT, vi를 빠져나가면서  내용을 저장 

           ZZ   -  :wq의 명령과 같다." 

  

7 삽입 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를 입력하면 된다. 

Note :  ESC (escape key 는 삽입(insert를 중지 시키고 명령어 mode로   

        돌아가는 키이다." 

 

8 Yanking : (Copying  

        Y  -  YANKS (copies line을 사용자가 보이지 않는 buffer에 저장 

        yy -  YANKS (copies line을 사용자가 보이지 않는 buffer에 저장 

        nY -  YANKS n , n line을 사용자가 보이지 않는 buffer에 저장" 

 

9 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" 

 

10 Putting  

        p  -  PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의 

              내용을 삽입 

        P  -  PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의 

              내용을 삽입 

        xp -  cursor 가 위치한 문자와 다음 문자를 교환" 

 

11 Interactive edit : (search and replace  

        /pattern -  find, pattern이라는 문자를 검색 

        cw       -  change word, 단어를 대치 (cw. dw, r, s, etc. 

        n        -  find, 앞에서 검색했던 'pattern'이라는 문자를 검색 

                    하는 반복 명령 

        N        -  find, 앞에서 검색했던 'pattern'이라는 문자를 역순 

                    으로 검색 하는 반복 명령" 

 

12 Global 명령  

                 Global replacement  

                :1,\$s/string1/string2/g 

                1 line부터 끝까지 string1 를 string2 로 대치 

        e.g.,   :1,\$s/sun/SUN/ 

                      Global delete  

                :g/pattern/d 

                1 line부터 끝까지 pattern 을 제거 

        e.g.,   :g/###/d (to delete lines inserted by cc file.c | &  

                 error-v" 

 

13 Reading in files  

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

 

14 여러 화일의 edit  

        :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 */" 

 

15 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" 



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

VI 에서 유용한 찾기/바꾸기 명령들

 

1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g

 

2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g

 

3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g

 

4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.

/^\d\+$

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

 

5. 전체 문서에서 add 를 plus로 치환

:s/add/plus/g

 

6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

:s/\/etc\//\/etc\/local\//g

 

7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g

 

8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.

:%s/foo/bar/i

 

9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.

:%s/\/bar

 

10. 정렬

123 def ghi
432 ius dkf
089 cdo lks

이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면

:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g

 

11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}

 

12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g

 

13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.

:g/cpu/d

# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.

 

14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기

:g/stat[0-9]/d

 

15. 빈 줄 두 줄을 한 줄로 바꾸기

:%s/\n\n/\n/g

 

16. 두 칸을 한 칸으로 줄이기

:%s/ / /g

 

17. 탭을 스페이스 공백으로 바꾸기

:%s/\t/ /g

 

18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기

:%s/ $//g 또는
:%s/ \n/\n/g

 

19. 줄 첫 칸의 띠어쓰기를 없애기

:%s/^ //g

 

20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,