Vim 단축키 정리
29 May 2019
Reading time ~3 minutes
Vim 단축키 정리
vimtutor를 이용한 Vim 단축키 학습
- git bash에서
vimtutor
를 실행하여 연습한 내용 정리
vimtutor <ENTER>
vim tutor.ko <ENTER>
- vim으로 파일 열기
vim FILENAME <ENTER>
- ESC - 명령모드/ 편집모드 변경
1.1 커서 움직이기
- h,k,j,l을 이용해서 커서 이동
1.2 빔을 시작하고 끝내기
- 바뀐 내용을 저장하지 않고 종료
:q! <ENTER>
- 바뀐 내용을 저장하고 종료
:wq <ENTER>
1.3 텍스트 편집 - 지우기
- 명령 모드에서 ‘x’를 누르면 커서가 위치한 곳의 글자를 지울 수 있음
1.4 텍스트 편집 - 삽입(INSSERTION)
- 명령 모드에서 ‘i’를 누르면 텍스트를 입력할 수 있음
- ESC는 명령 모드로 돌아가는데 쓰이며 원치 않는 명령이나 완전히 입력되지 않은 명령을 취소하는 데에도 쓰임
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
3.1 붙이기(PUT) 명령
- ‘p’를 입력하여 마지막으로 지운 내용을 붙일 수 있음
3.2 치환(REPLACE) 명령
- ‘r’을 누른 후 바꿀 글자를 입력해서 한 글자를 변경
3.3 변환(CHANGE) 명령
- 한 단어의 일부나 전체를 바꾸기(커서 뒤부터 단어 잘라내기)
cw
3.4 c를 이용한 다른 변환 명령
- 변환 명령은 삭제와 동일한 방식으로 동작
- 적용 가능한 대상 또한 같음(w, $, e, .. )
[횟수] c 대상
c [횟수] 대상
4.1 위치와 파일의 상태
- CTRL + g를 누르면 파일 내에서의 현재 위치와 파일의 상태를 볼 수 있음
- SHIFT + g를 누르면 파일 마지막 줄로 이동
- 특정 줄을 입력하고 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
5.1 외부 명령 실행하는 방법
- ’:!’을 입력한 후 실행하려는 명령을 입력
- 어떤 외부명령도 이 방법으로 실행가능
:![외부 쉘 명령]
:!ls
5.2 보다 자세한 파일 저장
- 수정된 내용을 파일로 저장
:w FILENAME
- 만든 파일 지우기
(MS-DOS) !del FILENAME
(Unix) !rm FILENAME
5.3 선택적으로 저장하는 명령
- 파일의 일부를 저장
:#,# w FILENAME
5.4 파일 읽어들이기, 합치기
- 위에 일부 저장한 파일을 현재 파일 커서 위치에 합치고 싶을 때 사용
:r FILENAME
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
- 찾은 내용이 강조(Highlight)되는 것을 없애기
:nohlsearch
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”파일에 넣어둘 수 있음