포스트

리눅스 (2) - vim

리눅스 (2) - vim

우분투 리눅스를 기준으로 글을 작성한다.


1. Vim이란? (개요 및 특징)

  • 정의: Vi IMproved의 약자로, 터미널 환경에서 가볍고 빠르게 사용할 수 있는 텍스트 에디터.
  • 장점:
    • 마우스 없이 키보드만으로 빠른 편집 가능
    • 리눅스/유닉스 계열 서버 환경에 기본 내장되거나 설치가 쉬움
    • 서버 단에서 직접 설정 파일 작성 및 로그 확인 시 유용

2. 설치 및 시작하기

  • 설치 명령:
    • Ubuntu/Debian: sudo apt install vim
  • 파일 열기/생성: vim [파일명]

3. 반드시 알아야 할 Vim의 4가지 모드

  • 일반 모드 (Normal Mode):
    • 진입: Esc
    • 이동, 삭제, 복사 등 기본 명령을 수행하는 모드 (기본 상태)
  • 입력 모드 (Insert Mode):
    • 진입: i (현재 위치 입력), a (다음 위치 입력), o (새 줄 추가 입력)
    • 글자를 직접 입력하는 모드
  • 비주얼 모드 (Visual Mode):
    • 진입: v (문자 단위 선택), V (줄 단위 선택), Ctrl + v (블록 단위 선택)
    • 텍스트 범위를 지정할 때 사용
  • 명령행 모드 (Command-line Mode):
    • 진입: :
    • 저장, 종료, 검색/대체 등 명령어를 실행하는 모드

4. 필수 명령어 및 단축키 정리

(1) 커서 및 화면 이동

  • 커서 이동
    • h, j, k, l : 좌, 아래, 위, 우 이동
    • w / b : 다음 단어 첫 글자로 이동 / 이전 단어 첫 글자로 이동
    • ^ / $ : 현재 행의 첫 문자로 이동 / 현재 행의 맨 뒤로 이동
    • 0 : 현재 행의 맨 앞으로 이동 (공백 포함)
    • H / M / L : 현재 화면의 맨 위 / 중간 / 맨 아래 행으로 이동
    • gg / G : 문서 맨 처음 / 문서 맨 끝으로 이동
  • 행 지정 이동
    • 숫자G 또는 :숫자 : 해당 행 번호로 바로 이동
    • :$ : 파일의 마지막 행으로 이동
  • 화면 스크롤
    • Ctrl + u / Ctrl + d : 반 화면 위 / 아래로 이동
    • Ctrl + b / Ctrl + f : 한 화면 위 / 아래로 이동
    • Ctrl + y / Ctrl + e : 한 행만 위 / 아래로 이동

(2) 내용 수정 및 삭제

  • 내용 수정
    • r : 커서 위치의 한 글자 수정
    • cw (또는 숫자cw) : 단어 수정 (숫자 입력 시 지정한 개수만큼 단어 수정)
    • s (또는 숫자s) : 지정한 글자 수만큼 삭제 후 입력 모드 전환
    • cc : 현재 행 전체 내용 수정
    • C : 커서 위치부터 행 끝까지 수정
  • 내용 삭제
    • x (또는 숫자x) : 글자 삭제
    • dw (또는 숫자dw) : 단어 삭제
    • dd (또는 숫자dd) : 행 삭제 (잘라내기)
    • D : 커서 위치부터 행 끝까지 삭제

(3) 복사, 붙여넣기 및 레지스터(버퍼)

  • 복사 및 붙여넣기
    • yy (또는 숫자yy) : 현재 행 복사
    • p / P : 커서 아래 행에 붙여넣기 / 커서 윗 행에 붙여넣기
  • 버퍼(Register) 활용
    • "버퍼이름yy : 지정한 버퍼에 현재 행 복사 (예: "ayy)
    • "버퍼이름p : 지정한 버퍼의 내용 붙여넣기 (예: "ap)

(4) 검색, 치환 및 파일 조작 (Command Mode)

  • 검색
    • /문자열 : 아래 방향으로 검색 (n: 다음, N: 이전)
    • ?문자열 : 위 방향으로 검색
  • 치환 (Replace)
    • :s/기존/바꿀문자/ : 현재 행에서 첫 번째 일치 단어 치환
    • :%s/기존/바꿀문자/g : 문서 전체에서 모든 단어 치환
    • :%s/.*/\L&/ : 문서 전체를 소문자로 변경
    • :%s/.*/\U&/ : 문서 전체를 대문자로 변경
  • 외부 파일 및 쉘(Shell) 명령어
    • :r 파일경로 : 지정한 파일 내용을 읽어와 현재 커서 위치에 삽입
    • :e 파일경로 : 현재 파일을 저장하고 지정한 파일로 전환
    • :n : vi 실행 시 여러 파일을 지정했을 때 다음 파일로 이동
    • :!명령어 : Vim을 종료하지 않고 쉘 명령어 실행 (돌아오려면 Enter)
    • :sh : 일시적으로 쉘로 나감 (Vim으로 복귀 시 exit 입력)

(5) 명령 취소 및 작업 복구

  • u : 마지막 작업 취소 (Undo)
  • Ctrl + r : 취소한 작업 다시 실행 (Redo)
  • U : 해당 행에서 수행한 모든 변경 사항 취소
  • :e! : 마지막 저장 이후의 수정 사항을 모두 버리고 다시 읽어오기

5. 작업 생산성을 높여주는 환경 설정 (~/.vimrc)

  • 주요 설정 예시 소개: ```text set number “ 줄 번호 표시 set hlsearch “ 검색어 하이라이트 set ignorecase “ 검색 시 대소문자 구별 안 함 set smartcase “ 대문자 포함 검색 시 대소문자 구별 set tabstop=4 “ Tab 간격 설정 set expandtab “ Tab을 공백으로 변환 set autoindent “ 자동 들여쓰기 syntax on “ 구문 강조 활성화

```

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.