ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 맥 터미널 명령어 입문 7-5. 검색, 치환(찾아바꾸기)
    개발입문/개발환경 세팅 2017. 1. 4. 19:03

    VIM 의 Cmd + F  

    저는 검색결과 확인할 때에도 절대 문서를 다 읽지 못합니다. Cmd + F 키워드로 딱 원하는 단어가 들어간 문장을 쓱- 살펴본 후, 내가 원하는 문장이 있는 곳만 집중적으로 읽기 시작합니다. (물론 문서가 마음에 된다면 위로 올라가 정독하기도 합니다.)

    VIM 도 Cmd + F 처럼 문서 내 검색이 가능합니다. 문자열 부분일치 뿐 아니라 정규표현식에 의한 문자열도 검색이 가능합니다! 

    - 문자열 일치
    - 정규표현식 부합하는 문자열
    - 정규표현식 상세 링크

    UNIX, LINUX 터미널 CMD  텍스트 에디터 VIM 검색! 치트키만 보고는 어떻게 사용해야 할 지 막막해서 셀프 예시를 들어 자세하게 포스팅하였습니다. 아래 포스트는 VIM, CMD 입문자용 포스트이며, 자세한 내용은 매뉴얼을 참고하시기 바랍니다.

    문서 내 검색 (기본)

    Cmd+F 와 동일한 문자열 일치검색부터 살펴보겠습니다. 검색결과는 구분하기 쉽도록 하이라이팅해서 보여드리겠습니다. (각 명령어의 미묘한 부분을 캐치하기 위해서 예시 단어들을 지정해놓겠습니다.)

    / 를 입력하여 VIM에게 커서 뒤의 텍스트에서 검색한다고 명령하였습니다. 반대로 ?을 입력하면 VIM에게 커서 앞의 텍스트에서 검색한다고 명령합니다. 그 이후에 오는 문자열을 입력하면 그 문자열과 일치하는 곳을 찾아줍니다.

    /{pattern} or ?{pattern}

    패턴 일치 검색

    /su            'su' 일치 (커서 이후, 후방일치)
    ?su            'su' 일치 (커서 이전, 전방일치
    n / N         검색결과 이동 n 순방향 / N  역방향


    success
    seminar
    sum
    summary
    su+

    /su

    ...
    su
    +

    /su+  + 문자열


    success
    seminar
    sum
    summary
    su+

    /s.m.

    . 한 글자 (어느 글자든)

    success
    seminar
    sum
    summary
    su+

    /s[ae]m  

    [ae] a or e 한글자


    문서 내 검색 (특수문자 활용)

    VIM에서는 \v 옵션을 통해 정규표현식을 이용한 패턴으로 검색하겠다고 명령합니다. 만약 \v 옵션을 사용하지 않았더라면 특수문자는 문자열 그대로 (literally) 인식합니다.

    정규식 표현은 
    - 문자열 전체를 기억하지 못하고 일부 조건만 가진 채 검색을 할 때
    - 사용자의 입력을 정해진 조건에 부합할 때만 쓰고, 부합하지 않을 때는 오류를 뱉고 재입력을 요구할 때

    정규식 표현으로 자주 사용하는 "기능성" 특수문자는 대표적으로 * , + , ? 가 있습니다. 정규식표현은 매우 중요하므로 다른 포스트에서 더 다루도록 하겠습니다.


    /\v{pattern}
    패턴 일치 검색 (특수문자 용)


    success
    seminar
    sum
    summary
    su+

    /\vsu*

    u* 'u'가 0개 이상 


    success
    seminar
    sum
    summary
    su+

    /\vsum+ 

    m+ 'm'가 1개 이상

    success
    seminar
    sum
    summary
    su+

    /\vsumm?

    m? 'm'이 0 or 1개


    문서 내 치환


    :{시작},{끝} s/{전}/{후}/{옵션}

    치환 (찾아바꾸기)
    대소문자 구분
    - default 1개 치환

    Vim online is a central place for the Vim community to store useful Vim tips and tools. Vim has a scripting language that allows for plugin like extensions to enable IDE behavior, syntax highlighting, colorization as well as other advanced features. These scripts can be uploaded and maintained using Vim online.


    :1,$ s/Vim/VIM/g

    첫 문단부터 문서끝까지 Vim 을 VIM 으로 전역에서 바꾸어라.


    VIM online is a central place for the VIM community to store useful VIM tips and tools. VIM has a scripting language that allows for plugin like extensions to enable IDE behavior, syntax highlighting, colorization as well as other advanced features. These scripts can be uploaded and maintained using VIM online.


    5 substitutions on 1 lines





    :1,2 s/Vim/VIM/g


    제 1~2 문단 텍스트 영역에서 전역 치환

    문단 Count 는 줄바꿈 기준


    VIM online is a central place for the VIM community to store useful VIM tips and tools. VIM is cool stuff. Horray VIM!

    VIM has a scripting language that allows for plugin like extensions to enable  DE behavior, syntax highlighting, colorization as well as other advanced features.

    These scripts can be uploaded and maintained using vim online.


    :1,$ s/Vim/VIM


    제 1문단~문서 끝 하나 치환


    VIM online is a central place for the Vim community to store useful Vim tips and tools. Vim has a scripting language that allows for plugin like extensions to enable IDE behavior, syntax highlighting, colorization as well as other advanced features. These scripts can be uploaded and maintained using Vim online.


    :.,$ s/Vim/VIM


    커서 위치~문서 끝 하나 치환



    유용한 옵션s

    그리고 VIM 검색 시, 사용할 수 있는 옵션 2개 소개합니다.

    대소문자 구분안함, 구분(default)

    :set ignorecase
    :set noignorecase


    검색결과 하이라이팅 적용/없음(default)

    :set hlsearch
    :set nohlsearch


    검색 히스토리

    / or : 앞에서 Up / Down 방향키


    다중 파일 검색

    여러 파일에서 한번에 찾을 수도 있습니다. 단, 파일 내 첫번째 일치한 문자열만, 그 문자열 포함한 문장을 반환합니다.

    다중 파일 검색

    :vimgrep /{문자열}/ {파일명1} {파일명2} ...


    :vimgrep /VIM/ ./pattern.txt ./change.txt

    :cn or :cp 다음 결과, 이전 결과 이동

    (1 of 2): test for VIM
    (2 of 2): VIM online is a central pla ... suing Vim online.


    VIM 모드와 사용법에 대해 이해하신 분을 위하여 바로 익혀볼 수 있도록 치트키와 매뉴얼 링크를 미리 공유드립니다. 

    VIM Cheat Key






    댓글

Designed by Tistory.