Vim/Vi 명령어 핵심 정리: 효율적인 텍스트 편집을 위한 마스터 가이드

 

Vim/Vi 명령어를 효율적으로 배우고 싶으신가요? 이 가이드는 복잡한 Vim/Vi의 세계를 쉽고 체계적으로 탐험할 수 있도록 도와줄 거예요. 기본적인 모드 전환부터 고급 검색 및 바꾸기 기능까지, 여러분의 생산성을 한 단계 업그레이드할 핵심 명령어들을 알려드릴게요!

 

혹시 터미널에서 파일을 편집하다가 ‘Vi’ 또는 ‘Vim’이라는 이름만 들어도 머리가 지끈거렸던 경험, 저만 있는 건 아니겠죠? 😅 처음에는 너무 낯설고 불편하게 느껴질 수 있지만, 한번 손에 익으면 마우스 없이도 눈 감고 편집할 수 있는 마법 같은 도구랍니다. 오늘은 여러분이 이 마법을 쉽게 배울 수 있도록 제가 직접 사용하면서 ‘이건 꼭 알아야 해!’ 싶었던 핵심 명령어들을 친근하고 자세하게 알려드릴게요! 그럼 함께 Vim/Vi의 세계로 떠나볼까요? 😊

 

Vim/Vi의 세 가지 핵심 모드 이해하기 🤔

Vim/Vi를 사용하기 전에 가장 먼저 알아야 할 것은 바로 ‘모드’ 개념이에요. 이 모드들을 정확히 이해해야 Vim/Vi를 자유자재로 다룰 수 있답니다. 저도 처음에 이 모드 전환이 헷갈려서 엄청 헤맸던 기억이 나네요. 🥲

모드 설명 진입/전환 방법 특징
노멀 모드 (Normal Mode) 명령어를 입력하는 기본 모드입니다. 텍스트 수정이 아닌 이동, 복사, 삭제 등 편집 작업을 수행해요. Vi/Vim 실행 시 기본 진입. 다른 모드에서 ESC 키를 누르면 전환됩니다. 강력한 편집 기능의 핵심. 방향키(h, j, k, l), 단어 이동(w, b), 라인 이동(gg, G) 등 다양한 움직임이 가능해요.
입력 모드 (Insert Mode) 텍스트를 직접 입력하고 수정하는 모드입니다. 우리가 흔히 아는 메모장과 같아요. 노멀 모드에서 i (현재 위치), a (다음 위치), o (다음 줄) 등으로 진입합니다. 실제 내용을 작성할 수 있는 유일한 모드. 특별한 기능 없이 일반적인 텍스트 편집이 가능해요.
명령줄 모드 (Command-line Mode) 파일 저장, 종료, 검색, 바꾸기 등 고급 명령어를 실행하는 모드입니다. 노멀 모드에서 : (콜론)을 누르면 화면 하단에 콜론이 나타납니다. 파일 관리(w, q), 텍스트 찾기(/, ?), 바꾸기(s) 등 강력한 기능을 제공해요.

 

꼭 알아야 할 노멀 모드 명령어 🏃‍♀️

사실 Vim/Vi의 진정한 힘은 노멀 모드에서 나옵니다! 여기서의 움직임과 편집 명령어를 익히면 마우스를 거의 쓸 필요가 없어지죠. 저도 처음엔 어색했는데, 자꾸 쓰다 보니 정말 편하더라고요!

  • 커서 이동:
    • h: 왼쪽으로 이동
    • j: 아래로 이동
    • k: 위로 이동
    • l: 오른쪽으로 이동
  • 단위 이동:
    • w: 다음 단어 시작으로 이동
    • b: 이전 단어 시작으로 이동
    • e: 현재 단어 끝으로 이동
    • 0: 현재 줄의 맨 앞으로 이동
    • $: 현재 줄의 맨 뒤로 이동
  • 페이지 및 파일 이동:
    • gg: 파일의 맨 위로 이동
    • G: 파일의 맨 아래로 이동
    • Ctrl + f: 한 페이지 아래로 스크롤
    • Ctrl + b: 한 페이지 위로 스크롤
  • 텍스트 수정 및 삭제:
    • x: 현재 커서의 문자 삭제
    • dw: 현재 단어 삭제 (delete word)
    • dd: 현재 줄 삭제 (delete line)
    • r: 현재 커서의 문자 교체
    • cw: 현재 단어 변경 (change word, 삭제 후 입력 모드 전환)
    • cc: 현재 줄 변경 (change line, 삭제 후 입력 모드 전환)
  • 복사 (Yank) 및 붙여넣기 (Put):
    • yw: 현재 단어 복사 (yank word)
    • yy: 현재 줄 복사 (yank line)
    • p: 현재 커서 뒤에 붙여넣기
    • P: 현재 커서 앞에 붙여넣기
  • 실행 취소 및 다시 실행:
    • u: 마지막 작업 실행 취소 (undo)
    • Ctrl + r: 마지막 실행 취소 되돌리기 (redo)

 

명령줄 모드 활용: 파일 관리 & 검색/바꾸기 🔍

파일을 저장하고, 닫고, 특정 텍스트를 찾거나 바꾸는 작업은 명령줄 모드에서 이루어집니다. 이 모드의 명령어들은 콜론(:)으로 시작하는 게 특징이에요. 처음엔 생소할 수 있지만, 몇 번만 써보면 금방 익숙해질 거예요.

💡 알아두세요!
명령줄 모드에서 명령어를 입력한 후에는 반드시 Enter 키를 눌러야 명령이 실행됩니다. 또한, 파일 이름이나 경로를 입력할 때는 자동 완성을 위해 Tab 키를 활용할 수 있어요!

파일 저장 및 종료

  • :w: 현재 파일 저장
  • :q: Vim/Vi 종료 (변경 사항이 없거나 저장된 경우)
  • :wq 또는 :x: 저장하고 종료
  • :q!: 변경 사항을 저장하지 않고 강제 종료
  • :w [파일명]: 현재 파일을 다른 이름으로 저장

텍스트 검색 및 바꾸기

텍스트를 찾는 건 정말 자주 쓰는 기능이죠! 특히나 정규 표현식을 활용하면 아주 강력한 검색도 가능하답니다.

  • /패턴: 현재 커서부터 아래 방향으로 ‘패턴’ 검색. (n으로 다음 찾기, N으로 이전 찾기)
  • ?패턴: 현재 커서부터 위 방향으로 ‘패턴’ 검색.
  • :%s/old/new/g: 파일 전체에서 ‘old’를 ‘new’로 모두 바꾸기 (g는 global, 즉 모든 일치 항목을 의미)
  • :%s/old/new/gc: 파일 전체에서 ‘old’를 ‘new’로 바꾸되, 바꿀 때마다 확인 질문 (c는 confirm)
  • :줄시작,줄끝s/old/new/g: 특정 줄 범위 내에서 바꾸기 (예: :10,20s/old/new/g는 10줄부터 20줄까지)
⚠️ 주의하세요!
:%s/old/new/g 명령은 되돌리기(u)가 가능하지만, 큰 파일을 다루거나 중요한 변경을 할 때는 반드시 미리 저장하거나 /gc 옵션을 사용하는 것이 좋아요. 혹시라도 실수하면 정말… 😱 제가 예전에 한번 저장 안 하고 강제 종료했다가 날린 파일 생각하면 아직도 눈물이 나네요.

 

실전 예시: Vim/Vi로 일상 작업 처리하기 📚

이론만으로는 부족하죠! 실제 상황에서 Vim/Vi 명령어를 어떻게 활용하는지 몇 가지 시나리오를 통해 알아볼게요. 저도 이런 식으로 연습하면서 익혔답니다.

사례 1: 40대 직장인 박모모 씨의 보고서 수정

  • 상황: 박모모 씨는 서버에서 급하게 보고서 파일을 열어 오타 ‘데이터베이스’를 ‘데이터 베이스’로 수정해야 합니다.
  • Vim/Vi 활용:
    1. vim report.txt (보고서 파일 열기)
    2. 노멀 모드에서 :/데이터베이스 입력 후 엔터 (오타 검색)
    3. :s/데이터베이스/데이터 베이스/g 입력 후 엔터 (현재 줄의 모든 ‘데이터베이스’를 ‘데이터 베이스’로 변경)
    4. 혹은 :%s/데이터베이스/데이터 베이스/g (파일 전체에서 변경)
    5. :wq 입력 후 엔터 (저장하고 종료)

사례 2: 30대 개발자 김모모 씨의 코드 최적화

  • 상황: 김모모 씨는 특정 함수에서 사용되는 변수명 old_variablenew_variable로 일괄 변경하고 싶습니다. 동시에 주석 처리된 부분은 그대로 두고 싶네요.
  • Vim/Vi 활용:
    1. vim main.py (Python 코드 파일 열기)
    2. :/def my_function() (해당 함수 시작 지점 검색)
    3. ma (현재 위치를 ‘a’ 마크로 저장)
    4. G (파일 맨 아래로 이동)
    5. :'a,.s/old_variable/new_variable/gc (마크 ‘a’부터 현재 위치까지 확인하며 바꾸기. ‘gc’를 통해 주석 부분은 건너뛸 수 있어요.)
    6. :wq (저장하고 종료)

사례 3: 20대 대학생 이모모 씨의 과제 정리

  • 상황: 이모모 씨는 텍스트 파일로 정리된 과제 노트에서 중요한 키워드들만 빠르게 복사해서 다른 파일에 붙여넣고 싶습니다.
  • Vim/Vi 활용:
    1. vim notes.txt (노트 파일 열기)
    2. /중요 키워드 (검색)
    3. yy (현재 줄 복사)
    4. :e new_summary.txt (새 파일 열기, 아직 저장 안 됨)
    5. p (복사한 줄 붙여넣기)
    6. 이후 다시 :b#로 이전 파일로 돌아가 다른 키워드를 복사하고 :b#로 새 파일로 돌아와 붙여넣기를 반복합니다.
    7. 작업 완료 후 :wq (저장하고 종료)

 

마무리: Vim/Vi, 꾸준함이 답이다! 📝

어떠셨나요? Vim/Vi가 생각보다 훨씬 더 많은 기능을 가지고 있다는 걸 느끼셨을 거예요. 처음엔 모든 명령어를 외우려 하지 마시고, 오늘 제가 알려드린 핵심 명령어들부터 하나씩 손에 익히는 것이 중요합니다. 저도 처음엔 메모지에 적어놓고 옆에 두고 보면서 사용했었어요. 😉

  1. 모드 전환은 기본 중의 기본! ESC, i, :, Enter는 숙달하세요.
  2. 자주 쓰는 이동 및 수정 명령어: h,j,k,l, w, b, dd, yy, p, u 등을 익히면 기본적인 편집은 문제없어요.
  3. 파일 저장과 종료: :wq 또는 😡는 습관처럼 사용해야 합니다.
  4. 검색 및 바꾸기: /패턴:%s/old/new/g는 복잡한 문서 작업에 필수예요.
  5. 꾸준한 연습만이 살 길! 매일 조금씩이라도 Vim/Vi를 사용해보세요. 어느새 여러분의 손이 키보드 위에서 춤을 추고 있을 겁니다!

Vim/Vi는 단순한 텍스트 에디터를 넘어, 여러분의 개발 및 문서 작업 생산성을 비약적으로 높여줄 강력한 도구입니다. 이 글이 여러분이 Vim/Vi와 친해지는 데 조금이나마 도움이 되었기를 바랍니다! 혹시 더 궁금한 점이 있다면 언제든지 댓글로 물어봐주세요~ 😊

💡

Vim/Vi 핵심 요약: 이것만 기억하세요!

✨ 모드 전환 마스터: 노멀, 입력, 명령줄 모드를 자유자재로 오가며 작업 효율을 높이세요. ESC, i, : 키가 핵심!
📊 필수 노멀 모드 명령어: h,j,k,l (이동), dd (줄 삭제), yy (줄 복사), p (붙여넣기), u (실행 취소)는 손에 익히면 신세계가 열립니다.
🧮 강력한 명령줄 모드: :wq (저장/종료), :q! (강제 종료), /패턴 (검색), %s/old/new/g (전체 바꾸기)로 파일을 완벽하게 제어하세요.
👩‍💻 꾸준한 연습이 핵심: 처음엔 어렵겠지만, 매일 조금씩 사용하며 익숙해지면 Vim/Vi는 최고의 생산성 도구가 될 거예요!

자주 묻는 질문 ❓

Q: Vim과 Vi는 뭐가 다른가요?
A: Vi는 유닉스 계열 시스템의 기본 편집기이고, Vim(Vi Improved)은 Vi의 기능을 확장하고 개선한 버전입니다. 대부분의 리눅스 배포판에는 Vim이 설치되어 있으며, Vi의 모든 기능을 포함하고 있어요.

Q: Vim/Vi를 종료하는 가장 빠른 방법은 무엇인가요?
A: 변경 사항이 있다면 :wq를 입력 후 엔터를 누르면 저장하고 종료됩니다. 변경 사항을 무시하고 강제 종료하려면 :q!를 입력 후 엔터를 누르세요.

Q: 복사(yy)한 내용을 여러 번 붙여넣고 싶을 때는 어떻게 하나요?
A: 한 번 yy로 복사한 내용은 레지스터에 저장되어 p 또는 P 명령으로 여러 번 붙여넣을 수 있습니다. 다른 내용을 복사하기 전까지는 계속 붙여넣기가 가능해요.

Q: 특정 단어를 찾아서 색깔로 하이라이트 되게 할 수 있나요?
A: 네, 노멀 모드에서 /찾을_단어를 입력하고 엔터를 누르면 해당 단어가 하이라이트 됩니다. 하이라이트를 끄려면 :nohl (no highlight)를 입력하면 돼요.

Q: Vim/Vi 단축키를 외우는 효과적인 방법이 있나요?
A: 가장 좋은 방법은 반복적인 사용입니다. 작은 텍스트 편집부터 시작해서 매일 조금씩이라도 Vim/Vi를 사용해보세요. Vimtutor와 같은 대화형 튜토리얼을 활용하는 것도 매우 효과적입니다. 저도 Vimtutor로 시작했어요!

Leave a Comment