보기 좋은 튜토리얼 주소 https://woongheelee.github.io/forever-in-vim
Vim은 초보자는 명령어 때문에, 익숙한 사용자는 매력 때문에 빠져나가기가 어렵습니다[1, 2, 3].
Vim의 세계로 들어왔다면 이제는 무한으로 즐겨보세요!
:q
- 저장 없이 종료:wq
- 저장 후 종료:q!
- 저장하지 않고 강제 종료
그래도 나가기 어려울 때는? 그냥 "Ctrl+C" 후 "power off"를 누릅니다. 😅
Vim을 유용하게 사용할 수 있는 주요 명령어를 모았습니다.
명령어 | 설명 |
---|---|
h |
왼쪽으로 한 칸 이동 |
l |
오른쪽으로 한 칸 이동 |
j |
아래로 한 줄 이동 |
k |
위로 한 줄 이동 |
w |
다음 단어로 이동 |
e |
단어 끝으로 이동 |
b |
이전 단어로 이동 |
gg |
파일의 맨 처음으로 이동 |
G |
파일의 맨 끝으로 이동 |
Ctrl+d |
화면의 절반 아래로 스크롤 |
Ctrl+u |
화면의 절반 위로 스크롤 |
명령어 | 설명 |
---|---|
/pattern |
pattern 문자열 검색 |
n |
다음 검색 결과로 이동 |
N |
이전 검색 결과로 이동 |
:%s/old/new/g |
파일 전체에서 old 를 new 로 치환 |
:%s/old/new/gc |
치환 전에 사용자 확인 |
명령어 | 설명 |
---|---|
i |
커서 앞에 텍스트 삽입 |
a |
커서 뒤에 텍스트 삽입 |
o |
현재 줄 아래에 새로운 줄 삽입 |
dd |
현재 줄 삭제 |
dG |
현재 줄부터 파일 끝까지 삭제 |
x |
커서 위치의 문자 삭제 |
명령어 | 설명 |
---|---|
yy |
현재 줄 복사 |
y$ |
현재 줄의 커서 이후만 복사 |
p |
복사한 내용 붙여넣기 |
u |
마지막 작업 취소 (undo) |
Ctrl+r |
취소한 작업 복구 (redo) |
명령어 | 설명 |
---|---|
:w |
파일 저장 |
:q |
Vim 종료 |
:wq |
저장 후 종료 |
:q! |
저장하지 않고 강제 종료 |
:x |
저장 후 종료 (단축 명령) |
명령어 | 설명 |
---|---|
v |
시각 모드 시작 (문자 단위 선택) |
V |
시각 모드 시작 (줄 단위 선택) |
Ctrl+v |
시각 모드 시작 (블록 단위 선택) |
y |
선택한 영역 복사 |
d |
선택한 영역 삭제 |
> |
선택한 영역 들여쓰기 |
< |
선택한 영역 내어쓰기 |
명령어 | 설명 |
---|---|
:split |
수평 창 분할 |
:vsplit |
수직 창 분할 |
Ctrl+w w |
다음 창으로 이동 |
Ctrl+w q |
현재 창 닫기 |
명령어 | 설명 |
---|---|
v + 선택 + : |
시각 모드로 영역을 선택한 후 명령어 실행 (norm 명령어와 함께 사용 가능) |
Ctrl+v + I + 텍스트 + Esc |
블록 선택 후 여러 줄의 시작에 텍스트 삽입 |
Ctrl+v + d |
블록 선택 후 여러 줄의 텍스트 삭제 |
:%norm i# |
파일 전체의 각 줄 앞에 # 추가 |
:%norm ^x |
파일 전체에서 각 줄의 첫 글자 삭제 |
-
주석을 달고 싶은 범위를 선택합니다.
- 방법 1:
v
를 눌러 문자 단위로 선택 - 방법 2:
Ctrl+v
를 눌러 블록 단위로 선택
- 방법 1:
-
:
을 입력한 뒤 아래 명령어를 실행합니다.:norm i#
- 선택한 줄의 앞에
#
이 추가됩니다.
- 선택한 줄의 앞에
-
삭제할 줄을 시각 모드(
v
또는Ctrl+v
)로 선택합니다. -
:
을 입력한 뒤 아래 명령어를 실행합니다.:norm ^x
- 선택한 줄의 첫 글자가 삭제됩니다.
- 블록 모드(
Ctrl+v
)로 여러 줄의 끝을 선택합니다. $
를 눌러 커서를 줄 끝으로 이동한 뒤 원하는 텍스트를 입력합니다.Esc
를 눌러 변경 사항을 적용합니다.
Vim을 사용해 두 파일의 차이점을 비교하는 방법은 다음과 같습니다:
-
터미널에서 Vim을 실행하면서 두 파일을 입력합니다.
vim -d file1 file2
또는 Vim 내부에서 다음 명령어를 실행합니다:
:vert diffsplit file2
- 현재 열려 있는 파일과
file2
의 차이점을 비교합니다. :split
을 사용하면 수평 분할로 비교할 수 있습니다.
- 현재 열려 있는 파일과
]c
: 다음 변경 사항으로 이동[c
: 이전 변경 사항으로 이동
Ctrl+w w
: 다음 창으로 이동Ctrl+w h
: 왼쪽 창으로 이동Ctrl+w l
: 오른쪽 창으로 이동
- 차이점을 확인하면서 한쪽 파일을 수정할 수 있습니다.
- 수정 후 저장은 일반 Vim 명령어(
:w
)를 사용합니다.
- 비교를 마친 후에는 일반적으로
:q
또는:qa
명령어로 Vim을 종료합니다.
아래는 제가 자주 사용하는 .vimrc
설정 파일입니다.
set shiftwidth=4 " 들여쓰기 공백 너비를 4칸으로 설정
set tabstop=4 " 탭 키의 공백 너비를 4칸으로 설정
set ignorecase " 검색 시 대소문자 구분 없음
set hlsearch " 검색어를 하이라이트 표시
set background=dark " 어두운 배경에 최적화된 색상 설정
set nocompatible " 호환 모드 비활성화 (더 현대적인 Vim 기능 활성화)
set history=1000 " 명령어 히스토리를 1000개까지 저장
set ruler " 상태 표시줄에 커서 위치 표시
set nobackup " 백업 파일 생성하지 않음
set title " 현재 편집 중인 파일 이름을 창 제목에 표시
set softtabstop=4 " 소프트 탭을 4칸으로 설정 (탭키 누르면 스페이스 키 네 번 눌린 효과)
set shiftwidth=4 " 들여쓰기 시 사용할 공백 너비를 4칸으로 설정
set smartindent " 스마트 들여쓰기 설정
set nu " 줄 번호 표시
set expandtab " 탭 대신 공백을 삽입