vim은 리눅스, 유닉스 시스템에 포함된 vi 편집기의 개선 버전입니다.
vim == vi 라고 생각할 수 있지만, 컬러나 강조 구문, 분할 화면 편집 등 편집 작업을 위한 더 강력한 기능들이 추가되어 있습니다.
요즘은 거의 vi 실행하면 vim으로 실행이 되는 경우가 많아서 다르다는 것만 참고하시면 됩니다.
아래 정리한 내용은 제 기준으로 유용할 것 같은 것만 정리한 내용입니다.
워낙 내용이 많아서 기억해놓으면 자주 쓸 것만 찾아서 기록했습니다.
모드
1. 일반 모드
처음 vim을 열때 기본 모드
주요 기능:
- 텍스트, 페이지 이동:
- w: 단어 단위 앞으로 이동
- b: 단어 단위 뒤로 이동
- gg: 파일의 시작으로 이동
- G: 파일의 끝으로 이동
- 0: 현재 줄의 맨 앞으로 이동
- $: 현재 줄의 맨 끝으로 이동
- Ctrl + d: 아래로 반 페이지 이동
- Ctrl + u: 위로 반 페이지 이동
- 복사, 삭제, 붙여넣기:
- yy: 현재 줄 복사
- dd: 현재 줄 삭제
- p: 복사하거나 삭제한 내용을 현재 위치 뒤에 붙여넣기
- x: 커서가 있는 글자 삭제
- 편집 명령:
- u: 실행 취소
- Ctrl + r: 실행 취소 복구
- .: 마지막 명령 반복
- 검색 :
- *: 커서가 있는 단어를 앞으로 검색
- #: 커서가 있는 단어를 뒤로 검색
- 다른 모드에서 일반 모드로 복귀 : ESC
2. 삽입 모드
텍스트를 직접 입력할 수 있는 모드, 키보드 입력 결과가 그대로 파일에 반영됩니다.
- 일반 모드 -> 삽입 모드로 변경 시 :
- i: 현재 커서 앞에 입력 시작
- a: 현재 커서 뒤에 입력 시작
- o: 현재 줄 아래에 새 줄 추가 후 입력 시작
- I: 현재 줄의 맨 앞에서 입력 시작
- A: 현재 줄의 맨 끝에서 입력 시작
3. 시각 모드 (Visual Mode)
텍스트를 선택할 수 있는 모드로, 선택한 영역에 대해 명령을 실행할 수 있습니다.
- 시각 모드로 진입:
- v: 문자 단위 선택 시작
- V: 줄 단위 선택 시작
- Ctrl + v: 블록(컬럼) 단위 선택 시작
- 선택 영역에 명령 실행:
- d: 선택한 영역 삭제
- y: 선택한 영역 복사
- >: 선택한 영역 들여쓰기
- <: 선택한 영역 내어쓰기
4. 명령 라인 모드
파일 저장, 종료, 검색 등과 같은 명령을 실행할 수 있는 모드입니다.
- 일반 모드에서 명령 라인 모드로 진입 :
- :(콜론): 명령 입력 시작
- 주요 명령 :
- :w: 파일 저장
- :q: 파일 종료
- :wq: 저장 후 종료
- :q!: 저장하지 않고 강제 종료
- :e filename: 다른 파일 열기
- :set nu: 행 번호 표시
- :set nonu: 행 번호 표시 제거
- /pattern: 현재 파일에서 pattern 검색
- ?pattern: 현재 파일에서 pattern을 역방향으로 검색
- :s/old/new/: 현재 줄에서 old를 new로 대체
- :%s/old/new/g: 파일 전체에서 old를 new로 대체
- 다중 창 및 탭 :
- 새창 열기 :
- :split filename: 수평으로 분할하여 filename 열기
- :vsplit filename: 수직으로 분할하여 filename 열기
- 창 이동 :
- Ctrl + w + h: 왼쪽 창으로 이동
- Ctrl + w + l: 오른쪽 창으로 이동
- Ctrl + w + j: 아래 창으로 이동
- Ctrl + w + k: 위 창으로 이동
- 새 탭 열기 : :tabnew filename
- 탭 이동 :
- gt: 다음 탭으로 이동
- gT: 이전 탭으로 이동
- 새창 열기 :
5. 대체 모드
텍스트를 입력하면서 기존 텍스트를 덮어쓰는 모드입니다.
- 진입 방법 :
- R: 대체 모드로 전환
6. 명령 모드
명령 라인 모드의 확장 버전, 더 복잡한 명령을 실행하거나 스크립트를 실행할 수 있습니다.
- 진입 방법 :
- Q: 명령 모드로 전환
- 명령 모드 종료 :
- visual 입력
7. 터미널 모드
vim의 터미널 버퍼에서 명령줄을 실행할 수 있는 모드입니다.
- 터미널 모드로 진입 :
- :term: 터미널 열기
- 모드 전환 :
- Ctrl + \ + Ctrl + n: 터미널 모드에서 일반 모드로 전환
터미널 모드는 버전에 따라 안되는 경우도 있네요.
커스터마이징
.vimrc 파일로 설정 가능
# 행 번호 표시
set number
# 탭 대신 공백 사용
set expandtab
set tabstop=4
set shiftwidth=4
# 검색 결과 하이라이트
set hlsearch
# 문법 강조
syntax on
'Linux' 카테고리의 다른 글
| Dirty Page (0) | 2025.12.16 |
|---|---|
| [linux] 프로세스 상태 및 명령어 (0) | 2025.05.29 |
| [Linux] 패턴을 이용한 파일 선택 방법 (0) | 2025.04.29 |
| [Linux] 링크에 관해 (inode, 하드링크, 심볼릭링크) (0) | 2025.04.25 |
| 알아두면 시간을 줄여주는 유용한 리눅스 터미널 단축키 & 커맨드 사용법 (0) | 2025.04.17 |