Modes

  • VI는 일반모드(nomral), 입력모드(insert), 명령행모드(command-line)를 가짐
  • Vim은 Visual mode(마우스를 대신하는 드래그 모드)를 추가함

image

Insert mode로 변환

  • a : a(append)는 현재 커서 위치에서 한 칸 뒤로 이동한 후 입력 모드로 전환
  • A : 현재 행의 끝으로 이동 후, 입력모드로 전환
  • i : i(insert)는 현재 커서 위치에서 입력모드로 전환
  • I : I는 현재 행의 맨 앞으로 이동 후, 입력모드로 전환
  • o : o(open line)는 현재 행 아래에 새로운 행을 하나 만든 후 입력모드로 전환
  • O : 현재 행 위에 새로운 행을 하나 만든 후 입력모드로 전환
  • R : 수정(replace) 모드로 작동하여 모든 글자가 덧쓰임

Cursor 기능

  • 화살표키 대신 h(왼), j(아래), k(위), l(오) 를 사용

    • [#]h : 좌로 # 칸 이동

    • ^ : 행의 맨 앞으로 이동

    • $ : 행의 맨 끝으로 이동

Scroll 기능

  • Ctrl + B(Page up) : 위로 한 화면 스크롤

  • Ctrl + F(Page Down) : 아래로 한 화면 스크롤

  • Ctrl + U : 위로 1/2 화면 스크롤

  • Ctrl + D : 아래로 1/2 화면 스크롤

goto 기능

  • : [#] : #행으로 이동
  • [#]gg : #행으로 이동(# 생략시 1을 의미)
  • [#]G : #행으로 이동(# 생략시 마지막 행을 의미)

문서내 현재 위치 정보 표시

  • : file(Ctrl + G)

삭제

  • x : 커서에 위치한 문자 삭제( 키와 같음)
  • : d (dd) : 현재 행을 삭제
  • D(d$) : 현재 컬럼 위치에서 현재 행의 끝부분까지 삭제
  • J : 아래 행을 현재 행의 끝에 한칸 뛰고 붙임(아래 행의 앞부분 공백은 제거)

image

복사

  • yy / :y / Y : 현재 행을 레지스터에 복사함

붙여넣기

  • p : 현재 행에 붙임
  • :pu : 현재 행의 아래에 붙여 넣음
  • P : 현재 행의 위쪽에 붙임
  • [#]p : #번만큼 현재 행에 붙임

Undo / Redo

  • u : 바로 이전에 행한 명령 1개를 취소함(Undo)

  • Ctrl + R : 바로 이전에 취소했던 명령을 다시 실행(Redo)

  • . (dot) : 이전 명령어 반복

Range CMD

  • 명령행 모드에서 범위를 지정해서 명령이 가능하며 특히 특정 행 범위 삭제 편리

  • meta character

    • . : 현재 행을 의미
    • $ : 마지막 행을 의미
    • +[#] : 현재 위치에서 # 만큼 아래 행을 의미
    • -[#] : 현재 위치에서 # 만큼 위 행을 의미
    • % : 문서 전체를 의미
  • 예시

    • :20d : 20번 행을 삭제

    • :10,25d : 10~25 행을 삭제

    • :10,$d : 10~마지막 행까지 삭제

    • :%y : 문서 전체를 복사함

    • :.,+20y : 현재 행부터 아래로 20행을 복사함

    • :-10,+5d : 현재 행부터 위로 10행, 아래로 5행, 총 열여섯행을 삭제

    • :40pu : 40번 행에 레지스터의 내용을 붙여넣음

Drag

  • v : 일반 비주얼 모드로 현재 커서 위치에서 블록을 지정함
  • V : visual line mode로 현재 커서가 위치한 행에서 행 단위로 블록을 지정
  • Ctrl + V : visual block mode로 열 단위로 블록을 지정함
  • 여기서 Drag 한 후 명령을 할 수 있음
    • gv : 최근 드래그한 텍스트 영역을 불러옴
    • o : 드래그한 블록의 시작, 끝으로 이동

강제종료

  • ! 를 추가