Linux

[Linux] VIM 편집기 활용

studioesso 2025. 5. 15. 17:34

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