ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 번역 ] [vim 입문] normal vim에서 사용가능한 편리할지도 모를 커맨드 10가지
    Technique/ETC 2016. 3. 16. 10:25
    반응형

    이 글은 http://qiita.com/simeji/items/527478831eb561b06c17?utm_content=buffer6cf58&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer 의 글을 제가 번역해서 작성한 것입니다.

    물론 오타및 오역, 의역등이 존재할 수 있기 때문에 일본어가 가능하신분은 원문을 읽으실 것을 추천해 드립니다.


    플러그인 없는 vim을 사용


    incsearch를 포함, 플러그인은 편리하고, 필자도 여러가지 사용하고 있습니다만,
    굳이 이번에는 vim(7.2이상)을 사용한다면 사용할 수 있는 커맨드로서, 필자 자신이 자주 사용하고 있는 커맨드 ( Ex 커맨드 토함)를 10가지 소개해 드릴까 합니다.
    #최근, 서버계의 작업이 늘어, 플러그인 없는 vim을 사용하는 경우가 늘어나고 있습니다.

    사람에따라 몸에익은 키설정이 있다고 생각합니다만, 이것만 기억해둔다면 어디서든 곤란하진 않을 것 이라 생각합니다.
    그럼 소개해 드리겠습니다.

    0.전제조건
    set number 는 설정해둔 것을 전제로합니다.
    아래와같이 vimrc에 작성해 두는것도 가능


    " 행번호 표시 set number



    1.ciw, ciW
    텍스트오브젝트를 삭제하고, 삽입모드로 변합니다.
    대상의 범위는 w라면 word (:h word참조)고, W라면 WORD(:h WORD)가 됩니다.

    1

    2.dib, diB
    똑같은 텍스트 오브젝트 계 입니다.
    대상의 범위는 b라면()로 감싸진 범위, B라면 {}로 감싸진 범위를 삭제합니다.
    프로그램등을 작성하고, 조건식과 같은 내용을 편집하거나 할 때 매우 편리하지 않을까요?
    dib,diB

    3.y{행번호}G

    현재행에서부터 설정한 행번호까지 복사
    예를들면 현재행으로부터 7행까지을 복사, y7G 와 같이 쓰는 느낌입니다.
    이것을 알기전에는 {숫자}yy 와 같은것을 사용했엇지만, 행번호가 표시되고 있다면 이쪽이 직감적으로 알기쉿겟죠>
    relative number를 나타내란말을 할 수도 있지만, 보통 평상시의 행번호가 사용하긴 더 편할것 입니다.
    3

    4. [op]f{x} , [op]t{x}
    [op]는 오페레이터 입니다.
    f{x}문자 {x}까지 커서를 이동시키거나, t{x}는 문자 {x}의 직전까지 이동시킵니다만, 이것에 d난 y등의
    오퍼레이터를 조합하는 것으로 임의의 문자의 직전까지 잘라내는것도 가능합니다.
    4

    5. gj,gk
    한행이 나눠질 정도로 긴 문장의 경우 예를들어 3행분정도로 나눠져 있을경우, 보통이라면 j,k로 이동한다면 실제의 행단위로 이동하는 것 입니ㅏㄷ.
    이때 gj, gk를 이용한다면 표시행단위로 이동가능합니다.
    5

    6. g~iw, guiw, gUiw
    g~iw는 커서의 아래부분의 단어의 대문자 소문자를 바꿉니다.
    guiw 는 커서 아래의 단어를 전부 소문자로 바꿉니다.
    gUiw 는 커서 아래의 단어를 전부 대문자로 바꿉니다.
    g~~, guu, gUU 로 한다면 위의 것들을 커서행 전체에 적용합니다.

    6


    7. <Ctrl>-a , <Ctrl>-x
    숫자에 커서를 맞춰서 실행시킵니다.
    <ctrl>-a로 증감, <Ctrl>-x로 반감합니다.
    0X01와 같은 16진수에 커서를 맞춰도 16진수로 인식하고, 증감,반감 해줍니다.
    01,001같은 0이 들어가있는 경우의 데이터는 기본8진수로 인식하고 동작합니다.
    이것을 10진수라고 인식시키기 위해서는 set nf=""를 vimmr 또는 Ex커맨드로 실행시키면 10진수로 인식합니다.

    7


    8. :set paste
    웹사이트등의 코드를 클립보드 경우로 복사했을 경우 인덴트가 이상하게 되버릴 경우가 있습니다.
    이럴 때에는 set paste를 지정한다면 복사한 인덴트 그대로 붙여넣기가 가능합니다.
    붙여넣기가 끝낫다면 :set nopaste로 원래대로 되돌려 주세요.
    *지금 설정해둔 인덴트가 먹히지 않기 때문에
    set 계의 커맨드는 :set pastet! 와같은 끝에 !를 붙여서 토글시키는게 편하지 않을까 싶습니다.
    8


    :a!


    위의 커맨드는 :a!로도 가능하다는 것을 알게되었습니다.
    최근에는 이쪽을 더 사용합니다.
    (paste mode 의 교체가 필요 없게 되서..)

    9. :sort u
    파일전체를 정렬하에 유니크하게 만듭니다.
    필자는 로그같은것을 조사할 때 라던지, 그외의 작업에서 텍스트를 조정하고 싶을 때 사용합니다.
    정렬만 할때에는 :sort 역순으로 정렬하고 싶으면 :sort! 를 이용합니다.

    9


    10. :v/{문자열}/d , :g/{문자열}/d
    :/{문자열}/d
    파일 전체로부터 {문잦열}이 포함된 행 이외의 행을 삭제합니다.

    10-1


    :g/{문자열}/d
    파일 전체로무터 {문자열} 이 포함된 행을 삭제합니다.

    10-2


    이상입니다. [편리한]이라기 보다는, 필자가 평소에 자주 사용하는 것을 발췌한것 뿐입니다만, 도움이 되셨으면 좋갰습니다.

    반응형

    댓글

Designed by Tistory.