← Back to Blog

[Vi/Vim] Basic Commands

computer science > programming

2026-07-057 min read

#computer-science #programming #vim #editor #linux

Vim이란?

Vim은 terminal에서 사용하는 text editor이다. 처음에는 조작 방식이 낯설지만, mode와 기본 명령어를 익히면 서버에서 파일을 빠르게 수정할 수 있다.

Vim의 핵심은 mode이다. 일반 editor처럼 항상 입력하는 방식이 아니라, 상황에 따라 mode를 바꿔가며 사용한다.


기본 mode

Vim에서 가장 중요한 mode는 다음 네 가지이다.

Mode용도진입
Normal mode이동, 삭제, 복사, 명령 실행Esc
Insert mode텍스트 입력i, a, o
Visual mode영역 선택v, V, Ctrl-v
Command-line mode저장, 종료, 검색 치환:

Vim을 처음 열면 보통 Normal mode이다. 글자를 입력하려면 Insert mode로 들어가야 한다.

Normal mode -> i -> Insert mode
Insert mode -> Esc -> Normal mode

막혔을 때는 일단 Esc를 눌러 Normal mode로 돌아오면 된다.


파일 열기

파일을 열 때는 terminal에서 다음처럼 입력한다.

vim main.py

파일이 없으면 새 파일이 열린다.

vim new_file.txt

읽기 전용으로 열고 싶다면 -R option을 사용할 수 있다.

vim -R config.txt

저장과 종료

Vim에서 저장과 종료는 Command-line mode에서 한다. Normal mode에서 :를 입력한 뒤 명령어를 입력한다.

명령어의미
:w저장
:q종료
:wq저장 후 종료
:x저장 후 종료
:q!저장하지 않고 강제 종료
:w filename다른 이름으로 저장

가장 자주 쓰는 명령은 다음 두 개이다.

:wq
:q!

수정한 내용을 버리고 나가려면 :q!를 사용한다.


Insert mode 진입

텍스트를 입력하려면 Insert mode로 들어가야 한다.

명령어의미
icursor 앞에서 입력
acursor 뒤에서 입력
I현재 줄 맨 앞에서 입력
A현재 줄 맨 뒤에서 입력
o아래에 새 줄 만들고 입력
O위에 새 줄 만들고 입력

예를 들어 현재 줄 끝에 내용을 추가하려면 A를 누른다.

Normal mode에서 A 입력
줄 끝으로 이동하면서 Insert mode 진입

입력이 끝나면 Esc로 Normal mode로 돌아온다.


기본 이동

Normal mode에서는 다음 키로 이동할 수 있다.

명령어의미
h왼쪽
j아래
k
l오른쪽

방향키도 동작하지만 Vim에서는 h, j, k, l을 많이 사용한다.

단어 단위 이동은 다음과 같다.

명령어의미
w다음 단어 시작으로 이동
b이전 단어 시작으로 이동
e현재 또는 다음 단어 끝으로 이동

줄 안에서 이동할 때는 다음 명령어가 유용하다.

명령어의미
0줄 맨 앞으로 이동
^줄의 첫 non-blank 문자로 이동
$줄 맨 끝으로 이동

파일 전체 이동

파일 안에서 크게 이동할 때는 다음 명령어를 사용한다.

명령어의미
gg파일 맨 위로 이동
G파일 맨 아래로 이동
10G10번째 줄로 이동
Ctrl-d반 화면 아래로 이동
Ctrl-u반 화면 위로 이동
Ctrl-f한 화면 아래로 이동
Ctrl-b한 화면 위로 이동

특정 줄 번호로 이동하려면 숫자G를 사용한다.

42G

또는 command mode에서 다음처럼 입력할 수도 있다.

:42

삭제

Normal mode에서 삭제 명령어는 d를 중심으로 구성된다.

명령어의미
xcursor 위치의 문자 삭제
dd현재 줄 삭제
dw단어 삭제
d$cursor부터 줄 끝까지 삭제
d0cursor부터 줄 앞까지 삭제
Dcursor부터 줄 끝까지 삭제

여러 줄을 삭제하려면 숫자를 붙인다.

3dd

현재 줄부터 3줄을 삭제한다.

삭제한 내용은 register에 들어가므로 붙여넣을 수 있다.


복사와 붙여넣기

Vim에서는 복사를 yank라고 부른다.

명령어의미
yy현재 줄 복사
yw단어 복사
y$cursor부터 줄 끝까지 복사
pcursor 뒤 또는 아래에 붙여넣기
Pcursor 앞 또는 위에 붙여넣기

여러 줄 복사는 숫자를 붙인다.

5yy

현재 줄부터 5줄을 복사한다.

붙여넣기는 p를 가장 많이 사용한다.

p

변경

c 명령어는 삭제 후 Insert mode로 들어간다.

명령어의미
cw단어를 지우고 입력
cc현재 줄을 지우고 입력
c$cursor부터 줄 끝까지 지우고 입력
r문자 하나 교체
Rreplace mode 진입

예를 들어 단어 하나를 바꾸려면 cursor를 단어 위에 두고 다음을 입력한다.

cw

새 단어를 입력한 뒤 Esc를 누르면 된다.


Undo와 Redo

수정 취소와 다시 실행은 다음과 같다.

명령어의미
uundo
Ctrl-rredo

방금 한 수정을 취소하려면 u를 누른다.

u

취소한 작업을 다시 적용하려면 Ctrl-r을 누른다.


검색

파일 안에서 문자열을 찾으려면 /를 사용한다.

/keyword

다음 검색 결과로 이동하려면 n을 누른다. 이전 검색 결과로 이동하려면 N을 누른다.

명령어의미
/text아래 방향 검색
?text위 방향 검색
n다음 결과
N이전 결과

검색 highlight를 끄려면 다음 명령어를 사용한다.

:noh

치환

문자열을 바꾸려면 substitute 명령어를 사용한다.

현재 줄에서 첫 번째 항목만 바꾸기:

:s/old/new/

현재 줄의 모든 항목 바꾸기:

:s/old/new/g

파일 전체에서 바꾸기:

:%s/old/new/g

바꾸기 전에 하나씩 확인하려면 c option을 붙인다.

:%s/old/new/gc

Visual mode

Visual mode는 영역을 선택할 때 사용한다.

명령어의미
v문자 단위 선택
V줄 단위 선택
Ctrl-vblock 단위 선택

선택한 뒤 다음 명령어를 사용할 수 있다.

명령어의미
y선택 영역 복사
d선택 영역 삭제
>선택 영역 indent 증가
<선택 영역 indent 감소

여러 줄을 한 번에 들여쓰기할 때 V로 줄을 선택한 뒤 >를 누르면 된다.


여러 파일 다루기

Vim 안에서 다른 파일을 열 수 있다.

명령어의미
:e file.txt파일 열기
:bn다음 buffer
:bp이전 buffer
:bd현재 buffer 닫기
:lsbuffer 목록

예를 들어 main.py를 열어둔 상태에서 config.py를 열려면 다음처럼 입력한다.

:e config.py

buffer 목록을 보려면 다음 명령어를 사용한다.

:ls

창 분할

Vim은 화면을 나눠서 여러 파일을 볼 수 있다.

명령어의미
:split수평 분할
:vsplit수직 분할
Ctrl-w h왼쪽 창으로 이동
Ctrl-w j아래 창으로 이동
Ctrl-w k위 창으로 이동
Ctrl-w l오른쪽 창으로 이동
Ctrl-w q현재 창 닫기

파일을 열면서 수직 분할하려면 다음처럼 쓴다.

:vsplit config.py

분할 창 사이를 이동할 때는 Ctrl-w를 누른 뒤 방향키 역할의 h, j, k, l을 누른다.


Tab

Vim의 tab은 여러 화면 layout을 관리할 때 사용한다.

명령어의미
:tabnew새 tab 열기
:tabnew file.txt파일을 새 tab으로 열기
gt다음 tab
gT이전 tab
:tabclose현재 tab 닫기

예를 들어 파일을 새 tab으로 열려면 다음처럼 입력한다.

:tabnew main.py

Indent

코드 들여쓰기는 다음 명령어를 자주 쓴다.

명령어의미
>>현재 줄 indent 증가
<<현재 줄 indent 감소
=선택 영역 자동 정렬
gg=G파일 전체 자동 정렬

파일 전체 indent를 정리하려면 Normal mode에서 다음을 입력한다.

gg=G

다만 language 설정이나 filetype 설정에 따라 결과가 달라질 수 있다.


자주 쓰는 조합

실제로 자주 쓰는 조합은 다음과 같다.

명령어의미
i입력 시작
EscNormal mode 복귀
:w저장
:wq저장 후 종료
:q!버리고 종료
dd줄 삭제
yy줄 복사
p붙여넣기
/keyword검색
n다음 검색 결과
uundo
Ctrl-rredo
gg파일 맨 위
G파일 맨 아래

처음에는 이 정도만 익혀도 서버에서 파일을 수정하는 데 큰 문제는 없다.


최소 workflow

처음 Vim을 쓴다면 다음 흐름만 먼저 익히면 된다.

  1. 파일 열기
vim config.txt
  1. 입력하기
i
  1. 입력 종료
Esc
  1. 저장 후 종료
:wq
  1. 실수했으면 저장하지 않고 종료
:q!

정리

Vim 명령어는 mode를 기준으로 이해하면 쉽다.

  1. 입력은 Insert mode에서 한다.
  2. 이동, 삭제, 복사, 붙여넣기는 Normal mode에서 한다.
  3. 저장과 종료는 : 명령어로 한다.
  4. 검색은 /keyword, 다음 결과는 n을 사용한다.
  5. 여러 파일은 buffer, split, tab으로 관리할 수 있다.

Vim을 처음 배울 때 모든 명령어를 외울 필요는 없다. i, Esc, :wq, :q!, dd, yy, p, /, n, u 정도만 익힌 뒤 필요한 명령어를 하나씩 추가하면 된다.