Forever in Vim 🌀

티스토리 블로그의 마크다운이 완전하기 않기에 원본 깃허브 저장소가 보기 편함

Vim은 초보자는 명령어 때문에, 익숙한 사용자는 매력 때문에 빠져나가기가 어렵습니다.

Vim의 세계로 들어왔다면 이제는 무한으로 즐겨보세요!

Vim에서 탈출하는 명령어

  • :q - 저장 없이 종료
  • :wq - 저장 후 종료
  • :q! - 저장하지 않고 강제 종료

그래도 나가기 어려울 때는? 그냥 "Ctrl+C" 후 "power off"를 누릅니다. 😅


주요 Vim 명령어

Vim을 유용하게 사용할 수 있는 주요 명령어를 모았습니다.

1. 이동 명령어

명령어 설명
h 왼쪽으로 한 칸 이동
l 오른쪽으로 한 칸 이동
j 아래로 한 줄 이동
k 위로 한 줄 이동
w 다음 단어로 이동
e 단어 끝으로 이동
b 이전 단어로 이동
gg 파일의 맨 처음으로 이동
G 파일의 맨 끝으로 이동
Ctrl+d 화면의 절반 아래로 스크롤
Ctrl+u 화면의 절반 위로 스크롤

2. 텍스트 검색 및 치환

명령어 설명
/pattern pattern 문자열 검색
n 다음 검색 결과로 이동
N 이전 검색 결과로 이동
:%s/old/new/g 파일 전체에서 oldnew로 치환
:%s/old/new/gc 치환 전에 사용자 확인

3. 텍스트 삽입 및 삭제

명령어 설명
i 커서 앞에 텍스트 삽입
a 커서 뒤에 텍스트 삽입
o 현재 줄 아래에 새로운 줄 삽입
dd 현재 줄 삭제
dG 현재 줄부터 파일 끝까지 삭제
x 커서 위치의 문자 삭제

4. 복사, 붙여넣기, 취소

명령어 설명
yy 현재 줄 복사
y$ 현재 줄의 커서 이후만 복사
p 복사한 내용 붙여넣기
u 마지막 작업 취소 (undo)
Ctrl+r 취소한 작업 복구 (redo)

5. 파일 저장 및 종료

명령어 설명
:w 파일 저장
:q Vim 종료
:wq 저장 후 종료
:q! 저장하지 않고 강제 종료
:x 저장 후 종료 (단축 명령)

6. 시각 모드

명령어 설명
v 시각 모드 시작 (문자 단위 선택)
V 시각 모드 시작 (줄 단위 선택)
Ctrl+v 시각 모드 시작 (블록 단위 선택)
y 선택한 영역 복사
d 선택한 영역 삭제
> 선택한 영역 들여쓰기
< 선택한 영역 내어쓰기

7. 창 분할 및 탐색

명령어 설명
:split 수평 창 분할
:vsplit 수직 창 분할
Ctrl+w w 다음 창으로 이동
Ctrl+w q 현재 창 닫기

8. 여러 줄 편집

명령어 설명
v + 선택 + : 시각 모드로 영역을 선택한 후 명령어 실행 (norm 명령어와 함께 사용 가능)
Ctrl+v + I + 텍스트 + Esc 블록 선택 후 여러 줄의 시작에 텍스트 삽입
Ctrl+v + d 블록 선택 후 여러 줄의 텍스트 삭제
:%norm i# 파일 전체의 각 줄 앞에 # 추가
:%norm ^x 파일 전체에서 각 줄의 첫 글자 삭제

예제 1: 여러 줄 주석 달기

  1. 주석을 달고 싶은 범위를 선택합니다.

    • 방법 1: v를 눌러 문자 단위로 선택
    • 방법 2: Ctrl+v를 눌러 블록 단위로 선택
  2. :을 입력한 뒤 아래 명령어를 실행합니다.

    :norm i#
    • 선택한 줄의 앞에 #이 추가됩니다.

예제 2: 여러 줄에서 첫 글자 삭제

  1. 삭제할 줄을 시각 모드(v 또는 Ctrl+v)로 선택합니다.

  2. :을 입력한 뒤 아래 명령어를 실행합니다.

    :norm ^x
    • 선택한 줄의 첫 글자가 삭제됩니다.

예제 3: 여러 줄 끝에 텍스트 추가

  1. 블록 모드(Ctrl+v)로 여러 줄의 끝을 선택합니다.
  2. $를 눌러 커서를 줄 끝으로 이동한 뒤 원하는 텍스트를 입력합니다.
  3. Esc를 눌러 변경 사항을 적용합니다.

두 파일의 차이점(diff) 비교하기

Vim을 사용해 두 파일의 차이점을 비교하는 방법은 다음과 같습니다:

단계 1: 두 파일 열기

  1. 터미널에서 Vim을 실행하면서 두 파일을 입력합니다.

    vim -d file1 file2

    또는 Vim 내부에서 다음 명령어를 실행합니다:

    :vert diffsplit file2
    • 현재 열려 있는 파일과 file2의 차이점을 비교합니다.
    • :split을 사용하면 수평 분할로 비교할 수 있습니다.

단계 2: 차이점 탐색

  • ]c : 다음 변경 사항으로 이동
  • [c : 이전 변경 사항으로 이동

단계 3: 창 이동

  • Ctrl+w w : 다음 창으로 이동
  • Ctrl+w h : 왼쪽 창으로 이동
  • Ctrl+w l : 오른쪽 창으로 이동

단계 4: 수정 및 저장

  • 차이점을 확인하면서 한쪽 파일을 수정할 수 있습니다.
  • 수정 후 저장은 일반 Vim 명령어(:w)를 사용합니다.

단계 5: diff 모드 종료

  • 비교를 마친 후에는 일반적으로 :q 또는 :qa 명령어로 Vim을 종료합니다.

.vimrc 기본 설정

아래는 제가 자주 사용하는 .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         " 탭 대신 공백을 삽입
Posted by 공돌이pooh
,