← 블로그 돌아가기

[Vi/Vim] Basic Commands

Computer Science > Programming

2026-07-057분 읽기

#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 정도만 익힌 뒤 필요한 명령어를 하나씩 추가하면 된다.