• Home
  • About
    • Young's Github Pages photo

      一日不作一日不食

    • About
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Vim 단축키 정리

29 May 2019

Reading time ~3 minutes

Vim 단축키 정리


vimtutor를 이용한 Vim 단축키 학습

00

  • git bash에서 vimtutor를 실행하여 연습한 내용 정리
vimtutor <ENTER>

vim tutor.ko <ENTER>
  • vim으로 파일 열기
vim FILENAME <ENTER>
  • ESC - 명령모드/ 편집모드 변경

1.1 커서 움직이기

  • h,k,j,l을 이용해서 커서 이동

01

1.2 빔을 시작하고 끝내기

  • 바뀐 내용을 저장하지 않고 종료
:q! <ENTER> 
  • 바뀐 내용을 저장하고 종료
:wq <ENTER>

1.3 텍스트 편집 - 지우기

  • 명령 모드에서 ‘x’를 누르면 커서가 위치한 곳의 글자를 지울 수 있음

1.4 텍스트 편집 - 삽입(INSSERTION)

  • 명령 모드에서 ‘i’를 누르면 텍스트를 입력할 수 있음
    • ESC는 명령 모드로 돌아가는데 쓰이며 원치 않는 명령이나 완전히 입력되지 않은 명령을 취소하는 데에도 쓰임

02

2.1 삭제(DELETION) 명령

  • 한 단어를 끝까지 지우기
dw

2.2 다른 삭제 명령

  • 커서 뒤 끝까지 지우기
d$

2.3 명령과 적응 대상에 대해

  • 삭제명령 d의 형식
    • 횟수 - 명령을 몇 번 수행할 지(옵션, 기본값 = 1)
    • d - 지우는 명령
    • 대상 - 아래에 제시된 대상에 대해 명령을 수행 * w - 커서에서 그 단어의 끝까지(공백 포함) * e - 커서에서 그 단어의 끝까지(공백 포함X) * $ - 커서에서 그 줄의 끝까지 * 명령모드에서 명령 없이 대상 입력으로 이동 가능
[횟수] d 대상

d [횟수] 대상

2.4 ‘명령 -대상’ 에 대한

  • 전체 줄 삭제
    • 줄 전체를 지우는 일이 찾아 vi를 디자인한 사람들은 간단히 d를 두번 연달아 치면 한 줄을 지울 수 있도록 함
dd
  • 여러줄을 삭제도 횟수를 통해 가능
    • 2줄 삭제
2dd

2.5 취소(UNDO) 명령

  • ‘u’를 누르면 마지막 명령이 취소됨, ‘U’는 줄 전체를 UNDO
  • Ctrl+’r’ 로 REDO

03

3.1 붙이기(PUT) 명령

  • ‘p’를 입력하여 마지막으로 지운 내용을 붙일 수 있음

3.2 치환(REPLACE) 명령

  • ‘r’을 누른 후 바꿀 글자를 입력해서 한 글자를 변경

3.3 변환(CHANGE) 명령

  • 한 단어의 일부나 전체를 바꾸기(커서 뒤부터 단어 잘라내기)
cw

3.4 c를 이용한 다른 변환 명령

  • 변환 명령은 삭제와 동일한 방식으로 동작
    • 적용 가능한 대상 또한 같음(w, $, e, .. )
[횟수] c 대상
c [횟수] 대상

04

4.1 위치와 파일의 상태

  • CTRL + g를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있음
  • SHIFT + g를 누르면 파일 마지막 줄로 이동

05

  • 특정 줄을 입력하고 SHIFT+g로 이동가능
[특정줄]<SHIFT+g>

4.2 찾기 명령

  • 순서대로 찾기
    • 다음에 찾을 단어는 ‘n’을 눌러서 찾을 수 있다
/[찾을단어]
?[역순으로 찾을 단어]

4.3 괄호의 짝 찾기

  • (,[,{에 커서를 올리고 ’%’를 누르면 닫히는 ),],} 짝을 찾을 수 있음
    • 짝이 맞지 않을 때 디버깅에 유용

4.4 에러를 수정하는 방법

  • ‘old’를 ‘new’로 치환(SUBSTITUTE)
    • g가 없으면 커서 뒤에 처음 발견한 한 단어만 치환됨
    • g가 있으면 그줄 전체(globally)를 치환
:s/old/new/g
  • 두 줄 사이의 모든 문자열에 대해 치환
    • 여기서 #,#은 두 줄의 줄번호
:#, #s/old/new/g
  • 파일 전체에서 발견된 모든 것을 치환
:%s/old/new/g

06

5.1 외부 명령 실행하는 방법

  • ’:!’을 입력한 후 실행하려는 명령을 입력
    • 어떤 외부명령도 이 방법으로 실행가능
:![외부 쉘 명령]

:!ls

5.2 보다 자세한 파일 저장

  • 수정된 내용을 파일로 저장
:w FILENAME
  • 만든 파일 지우기
(MS-DOS) !del FILENAME
(Unix)   !rm FILENAME

5.3 선택적으로 저장하는 명령

  • 파일의 일부를 저장
:#,# w FILENAME

5.4 파일 읽어들이기, 합치기

  • 위에 일부 저장한 파일을 현재 파일 커서 위치에 합치고 싶을 때 사용
:r FILENAME

07

6.1 새 줄 열기(OPEN)

  • ‘O’를 누르면 커서 위에 줄을 만들고 편집모드가 됨
  • ‘o’를 누르면 커서 아래에 줄을 만들고 편집모드가 됨

6.2 추가(APPEND)

  • ‘a’를 누르면 커서 다음에 글을 입력할 수 있음
  • SHIFT+a를 사용하면 줄 맨뒤에 커서가 놓이고 편집모드가 됨

6.3 치환(REPLACE)의 다른 버전

  • 대문자 ‘R’을 입력하면 하나 이상의 글자를 바꿀 수 있음
    • R을 누른 부분부터 ESC를 누르기 전까지 입력하는 값으로 값들이 치환됨

6.4 옵션 설정(SET)

  • 찾기나 바꾸기에서 대소문자 구분을 없애기 위해 옵션을 설정
    • 아래와 같이 찾기를 수행하면 대소문자를 구분
/ignore
  • ‘ic’(대소문자 구별 안함, ignore case) 옵션 설정
    • Ignore 단어도 검색됨
:set ic
  • hlsearch, incsearch 옵션 설정
:set hls is

08

  • 찾은 내용이 강조(Highlight)되는 것을 없애기
:nohlsearch

09

7. 온라인 도움말 명령

  • 온라인 도움말 시스템 사용
:help

# help 종료시
:q <ENTER>

# 어떤 주제에 관한 도움말 찾기
:help [단어]

:help w
:help c_<T
:help insert-index
:help user-manual

8. 시작 스크립트 만들기

  • 빔의 기능 켜기
  • 빔은 vi보다 많은 기능을 가짐, 대부분 기본적으로 동작하지 않음
  • 더 많은 기능을 써보기 위해선 “vimrc”라는 파일을 만들어야 함
  • “vimrc”파일을 수정
#Unix의 경우
:edit ~/.vimrc

#MS-Windows의 경우
:edit $VIM/_vimrc
  • “vimrc”의 예제를 읽어들임
:read $VIMRUNTIME/vimrc_example.vim
  • 다음과 같이하여 파일을 저장
:write
  • 원하는 설정을 이 “vimrc”파일에 넣어둘 수 있음


TILVim