Published 2022. 8. 29. 00:01

 


 

vim 모드에서 자주 사용하는 단축키를 알아보자.

(자주쓰는것 빨간글씨)

 

 


 

이동


h, j, k, l: 좌,하,상,우 커서 이동

-: 줄의 처음 위치로 커서 이동

 

gg  : 맨 위로 커서 이동

 

[shift + g]: 맨 아래로 커서 이동

 

단어 단위로 이동

 

w:   단어의 시작 위치로 커서 이동 (forward 방향)

 

Ex. 3w: 세 단어 앞으로 커서 이동


e: 단어의 마지막 위치로 커서 이동 (forward 방향)

 

b: 단어의 시작 위치로 커서 이동 (backward 방향)

 

ge: 단어의 마지막 위치로 커서 이동 (backward 방향)

 

한 문장 내에서의 이동

 

0(숫자): 라인 맨 앞으로 커서 이동

 

[ SHIFT + ^ ] : 문장 맨 앞으로 커서 이동

 

[ SHIFT +  $ ] : 문장 맨 뒤로 커서 이동

 

대략적인 위치로 이동 (현재 보이는 페이지 기준)

 

[shift + h]: 현재 보이는 페이지를 기준으로 맨 위로 커서 이동

 

[shift + m]: 현재 보이는 페이지를 기준으로 중간 라인으로 커서 이동

 

[shift + l]: 현재 보이는 페이지를 기준으로 맨 아래로 커서 이동

 

페이지 이동

 

[ctrl+ f]: 다음 페이지의 첫 줄로 커서 이동

 

[ctrl+ b]: 다음 페이지의 마지막 줄로 커서 이동

 

[ctrl+ d]: 페이지의 절반 크기만큼 아래로 커서 이동

 

[ctrl+ u]: 페이지의 절반 크기만큼 위로 커서 이동

 

[shift + : ]  : 원하는 줄 번호로 한 번에 이동

 

줄 번호 설정 및 해지

 

[: + set number]: 줄 번호 설정

 

[: + set nonumber]: 줄 번호 설정

 

방법1

 

[esc] 를 눌러 표준 모드로 진입

 

[:] 를 누른 후 원하는 [줄 번호] 입력

 

방법2

 

[esc] 를 눌러 표준 모드로 진입

 

원하는 [줄 번호] 입력

 

[shift + g] 입력

 

{}(컬리 블레이스, Curly Brace) 을 기준으로 이동

 

]]: {로 커서 이동 (forward 방향)

 

없으면 페이지의 맨 아래로 커서 이동

 

{은 가장 상위의 블록을 감싸고 있는 문자만 찾는다.

 

[[: {로 커서 이동 (backward 방향)

 

][: }로 커서 이동 (forward 방향)

 

없으면 페이지의 맨 위로 커서 이동

 

}은 가장 상위의 블록을 감싸고 있는 문자만 찾는다.

 

[]: }로 커서 이동 (backward 방향)

 

%: {}나 ()에서 현재 괄호의 짝으로 커서 이동

 

편집

 

삽입 관련 단축키 (입력 가능한 상태로 변경)

 

i: 현재 커서가 위치한 문자의 앞에 Insert 하기

 

I: 현재 커서가 위치한 줄 맨 앞에 Insert 하기

 

a: 현재 커서가 위치한 문자의 뒤에 Insert 하기

 

A: 현재 커서가 위치한 줄 맨 뒤에 Insert 하기

O: 현재 커서가 위치한 줄 바로 윗줄에 Insert 하기

 

o: 현재 커서가 위치한 줄 바로 아랫줄에 Insert 하기

 

삭제/잘라내기 및 수정 관련 단축키

 

dd: 커서가 위치한 줄 잘라내기

 

dw: 커서가 위치한 곳부터 단어의 마지막까지 잘라내기

 

Ex. 숫자 + dd: 커서가 위치한 줄부터 숫자에 해당하는 수만큼의 줄 잘라내기

 

[shift + d]: 현재 커서의 위치부터 줄의 끝까지 잘라내기

x: 커서가 위치한 문자 잘라내기

 

[shift + x]: 커서가 위치한 문자 바로 앞에 있는 문자 잘라내기

s: 커서가 위치한 문자 잘라내고 Insert 하기

 

cc 또는 [shift + s]: 커서가 위치한 줄 전체 잘라내고 Insert 하기

 

cw: 커서가 위치한 곳부터 단어의 마지막까지 잘라내고 Insert 하기

 

[shift + c]: 현재 커서의 위치부터 줄의 끝까지 잘라내고 Insert 하기

[ r + 변경할 문자]: 커서가 위치한 문자 하나 수정하기 ( 한 글자 수정🌟)

 

Ex. 4rx: 현재 커서 이후 4개의 글자를 “x”로 수정한다.

 

복사/붙여넣기 관련 단축키

 

yl: 현재 커서가 위치한 문자 하나만 복사하기

 

Ex. 3yl: 현재 커서 이후 3개의 문자를 복사한다.

 

yy: 현재 커서가 위치한 줄 복사하기

 

yw: 현재 커서의 위치부터 단어가 끝나는 위치까지 복사하기

 

y: 블럭 단위로 체크한 내용(비주얼 모드 이용) 복사하기 - 한 문자만 복사 X

 

Ex. 숫자 + y: 커서가 위치한 줄부터 숫자에 해당하는 수만큼의 줄 복사하기

 

Ex. y$: 커서가 위치한 곳부터 줄의 마지막까지 복사하기

 

p:

 

단어 복사: 현재 커서가 위치한 바로 다음 위치에 붙여넣기

 

행 복사: 현재 커서가 위치한 줄 바로 아랫줄에 붙여넣기

 

[shift + p]:

 

단어 복사: 현재 커서가 위치한 바로 앞 위치에 붙여넣기

 

행 복사: 현재 커서가 위치한 줄 바로 윗줄에 붙여넣기

 

숫자 + p: 해당 숫자 만큼 붙여넣기를 반복하기

 

선택

 

한 줄 선택

 

[shift + v]: 라인 단위로 블럭지정이 가능하다.

 

단어 단위로 여러 줄 선택

 

[esc] 를 눌러 표준 모드로 진입

 

v 를 눌러 여러 줄을 선택할 수 있는 상태를 만든다.

 

v: 단어 단위

 

[shift + v]: 라인 단위

 

멀티 포커스

 

[ctrl + v]: 블럭 단위로 여러 줄 선택. 즉, 사각형의 블럭지정이 가능하다.

 

검색

 

/ + 찾을 단어 + Enter: 문서에서 단어 찾기

 

n 또는 *: 다음 찾기 (forward 방향)

 

N 또는 #: 이전 찾기 (backward 방향)

 

다음 줄을 현재 커서가 있는 줄의 끝으로 이어 붙이기

 

[shift + j]: 다음 줄을 현재 커서가 있는 줄의 끝으로 이어 붙인다.

 

취소하기/되돌리기 및 들여쓰기/내어쓰기

 

u: Undo, 이전으로 취소하기

 

[ctrl + r]: Redo, 취소한 것을 다시 되돌리기

 

> 2번 클릭: 들여쓰기

 

>}: 한 문단 전체를 들여쓰기

 

Ex. 2»: 2번 들여쓰기

 

< 2번 클릭: 내어쓰기

 

.: - 이전 명령어를 다시 실행

 

대소문자 전환

 

[shift + ~]: 현재 커서가 위치한 문자의 대소문자를 변경한다.

 

숫자 증감

 

[ctrl + a]: 현재 커서가 위치한 하나의 문자가 숫자라면 해당 명령어로 숫자를 증가시킬 수 있다.

 

[ctrl + x]: 현재 커서가 위치한 하나의 문자가 숫자라면 해당 명령어로 숫자를 감소시킬 수 있다.

 

창 열기/탭 이동 등

 

[: + vs]: 현재의 창을 세로로 분할된 창으로 하나 더 열기

 

[: + new]: 새 창을 현재의 창 아래(세로로)에 분할된 창으로 열기

 

[: + tabnew]: 새 창을 현재의 창과 같은 위치에 열기

 

[ctrl + w] 2번 클릭: 분할 창 간에 이동

 

[gt]: 오른쪽 탭으로 이동

 

[gT]: 왼쪽 탭으로 이동

 

코드 형식 관련

 

zc: 코드 접기 (fold)

 

zM: 코드 모두 접기 (fold)


zo: 접힌 코드 펼치기

 

zR: 접힌 코드 모두 펼치기

zd: fold 지우기

 

zD: 모든 fold 지우기

 


 

Reference


https://blog.outsider.ne.kr/540
https://vim.rtorr.com/lang/ko
http://egloos.zum.com/kwon37xi/v/1501256
https://vim.rtorr.com/lang/ko
https://devanix.tistory.com/170
http://ickhyun82.blogspot.com/2012/02/vi.html
vimgolf - vi 학습 프로그램
https://gmlwjd9405.github.io/2019/05/14/vim-shortkey.html

복사했습니다!