vim(vi) 명령어 완벽 정리: 개발자 필수 에디터 사용법 가이드

 

Vim(vi) 초보자를 위한 필수 명령어 가이드. 터미널 기반의 강력한 에디터, Vim의 기본 사용법부터 고급 기능까지 한눈에 정리했습니다. 개발자라면 꼭 알아야 할 필수 명령어들을 통해 생산성을 2배로 높여보세요!

 

개발자분들, 혹은 리눅스 환경에서 작업하시는 분들이라면 한 번쯤 들어보셨을 이름, 바로 Vim(vi)이죠? 처음 접하면 마치 미로처럼 느껴져서 '이걸 어떻게 쓰지?' 하고 포기하는 분들이 많아요. 저도 처음에는 그랬거든요. 😅 하지만 Vim에 한번 익숙해지면 마우스 없이도 텍스트를 자유자재로 편집하는 그 편리함에 푹 빠지게 된답니다. 이번 포스팅에서는 Vim 초보자도 쉽게 따라 할 수 있도록, 핵심 명령어들을 단계별로 아주 쉽고 친절하게 정리해 봤어요.

이 글만 잘 읽어보셔도 Vim의 기본 동작 원리를 이해하고, 파일 열기, 저장, 검색, 복사/붙여넣기 등 필수적인 작업들을 능숙하게 해낼 수 있을 거예요. 그럼, 키보드에서 손 떼지 않고 코딩하는 진정한 '키보드 마스터'가 되기 위한 여정, 저와 함께 떠나보실까요? 🚀

 

Vim의 세 가지 모드 이해하기 🤔

Vim이 다른 에디터와 가장 다른 점은 바로 '모드'가 있다는 거예요. 이 모드 개념만 정확히 이해해도 Vim의 절반은 정복했다고 할 수 있습니다. Vim은 크게 세 가지 모드로 나뉘어요.

  • 명령 모드 (Normal Mode): Vim을 실행했을 때 가장 먼저 진입하는 기본 모드예요. 커서 이동, 삭제, 복사, 붙여넣기 등 모든 편집 명령을 수행합니다. 여기서 키를 누르면 글자가 입력되는 게 아니라, 특정 명령어가 실행돼요.
  • 입력 모드 (Insert Mode): 우리가 흔히 쓰는 메모장처럼 텍스트를 직접 입력하는 모드입니다. 'i', 'a', 'o' 등의 명령어를 통해 진입할 수 있고, 'ESC' 키를 누르면 다시 명령 모드로 돌아옵니다.
  • 명령줄 모드 (Command-line Mode): 파일을 저장하거나 종료할 때, 또는 검색이나 치환 기능을 사용할 때 진입하는 모드입니다. 명령 모드에서 콜론(':') 키를 누르면 화면 하단에 콜론이 나타나는데, 이때부터 명령줄 모드예요.
💡 알아두세요!
Vim 사용의 핵심은 이 세 가지 모드를 자유자재로 오가는 것입니다. 대부분의 작업은 명령 모드에서 시작해서 필요할 때 입력 모드로 전환하고, 작업이 끝나면 다시 명령 모드로 돌아오는 흐름으로 진행됩니다. 'ESC' 키는 항상 '명령 모드로 돌아가기' 역할을 한다는 걸 꼭 기억하세요!

 

기본 조작 명령어: 파일 열기, 저장, 종료 🚪

가장 먼저 익혀야 할 명령어들이죠. Vim을 시작하고 끝내는 방법이에요. 이 몇 가지 명령어만 알아도 기본적인 텍스트 편집은 충분히 할 수 있습니다.

파일 열기 및 시작하기

  • vim 파일명: 새로운 파일을 생성하거나 기존 파일을 엽니다.
  • vim -r 파일명: 비정상적으로 종료된 파일을 복구합니다.

저장 및 종료 명령어 (명령줄 모드)

명령 모드에서 :를 입력한 후 아래 명령어를 입력하고 Enter를 누릅니다.

명령어 설명
:w 현재 파일을 저장합니다.
:q 현재 파일을 닫고 Vim을 종료합니다. (수정 사항이 없어야 함)
:wq 또는 :x 저장하고 종료합니다.
:q! 강제로 종료합니다. (수정 사항을 저장하지 않음)
⚠️ 주의하세요!
수정한 내용이 있는데 그냥 :q를 입력하면 'No write since last change'라는 에러 메시지가 뜨면서 종료되지 않아요. 이때는 :wq로 저장하고 종료하거나, 변경 내용을 버리고 싶다면 :q!를 사용해야 합니다.

 

커서 이동과 입력 모드 전환 🏃‍♂️

Vim을 처음 쓰는 분들이 가장 헷갈려 하는 부분인데요, 화살표 키 대신 Vim의 전용 커서 이동 키를 익히는 게 좋아요. 손가락이 키보드 중앙에 머물러 있어 훨씬 효율적이거든요.

명령 모드에서의 커서 이동

  • h: 왼쪽으로 이동
  • j: 아래로 이동
  • k: 위로 이동
  • l: 오른쪽으로 이동
  • 0 또는 ^: 현재 줄의 맨 앞으로 이동
  • $: 현재 줄의 맨 뒤로 이동
  • G: 파일의 맨 아래로 이동
  • gg: 파일의 맨 위로 이동

입력 모드로 전환하기 (명령 모드에서)

텍스트를 입력하고 싶을 땐 아래 명령어 중 하나를 사용하면 됩니다.

  • i: 현재 커서 위치에 삽입 (insert)
  • a: 현재 커서 바로 뒤에 삽입 (append)
  • o: 현재 줄 아래에 새로운 줄을 만들고 삽입 (open)
  • ESC: 입력 모드에서 명령 모드로 돌아가기 (아주 중요!)

 

편집 명령어: 삭제, 복사, 붙여넣기 ✂️

이제 본격적으로 텍스트를 편집해볼까요? Vim에서는 삭제, 복사, 붙여넣기 기능도 명령어로 처리합니다. 이 명령어들은 숫자와 조합하여 여러 줄을 한 번에 조작할 수 있다는 강력한 장점이 있어요.

삭제 (Delete)

  • x: 커서가 있는 한 글자 삭제
  • dw: 현재 커서부터 단어의 끝까지 삭제 (delete word)
  • dd: 현재 커서가 있는 줄 전체 삭제 (delete line)
  • 5dd: 현재 줄부터 5줄을 삭제

복사 (Yank) 및 붙여넣기 (Paste)

  • yy: 현재 줄 복사 (yank)
  • 5yy: 현재 줄부터 5줄 복사
  • p: 커서가 있는 줄 아래에 붙여넣기 (paste)
  • P: 커서가 있는 줄 위에 붙여넣기

 

검색 및 치환 🔍

특정 단어를 찾거나, 한 번에 여러 곳의 텍스트를 바꾸고 싶을 때 사용하는 유용한 기능이에요.

단어 검색 (명령줄 모드)

  • /검색어: 파일 내에서 '검색어'를 찾습니다. n을 누르면 다음 찾기, N을 누르면 이전 찾기로 이동해요.
  • ?검색어: 역방향으로 '검색어'를 찾습니다.

문장 치환 (명령줄 모드)

특정 단어를 다른 단어로 한 번에 바꾸고 싶을 때 사용해요.

치환 공식

:[범위]s/찾을 문자열/바꿀 문자열/[옵션]

  • :s/foo/bar/: 현재 줄에서 처음 발견된 'foo'를 'bar'로 치환합니다.
  • :s/foo/bar/g: 현재 줄에서 발견된 모든 'foo'를 'bar'로 치환합니다. (g는 global)
  • :%s/foo/bar/g: 파일 전체에서 발견된 모든 'foo'를 'bar'로 치환합니다.
  • :%s/foo/bar/gc: 파일 전체에서 발견된 모든 'foo'를 'bar'로 치환할 때, 사용자에게 치환 여부를 확인합니다. (c는 confirm)

 

마무리: 핵심 내용 요약 📝

자, 지금까지 Vim의 필수 명령어들을 쭉 훑어봤는데요, 어떠셨나요? 처음엔 좀 복잡해 보일 수 있지만, 몇 번만 반복해서 사용해 보면 금방 손에 익으실 거예요. 오늘 배운 내용을 다시 한번 정리해볼게요!

  1. Vim의 3가지 모드 이해하기. 명령 모드, 입력 모드, 명령줄 모드를 구분하는 것이 가장 중요합니다.
  2. 'ESC' 키는 필수! 입력 모드에서 명령 모드로 돌아갈 때 사용합니다.
  3. 기본 명령어 익히기. :w(저장), :q(종료), :wq(저장 후 종료), :q!(강제 종료)를 숙지하세요.
  4. 키보드로 커서 이동하기. h, j, k, lgg, G 등을 활용하면 마우스 없이도 빠르게 이동할 수 있어요.
  5. 편집 명령어 조합하기. yy, dd, p 등은 숫자와 조합해서 여러 줄을 한 번에 조작할 수 있다는 걸 기억하세요!

Vim은 처음엔 진입장벽이 높지만, 일단 익숙해지면 엄청난 생산성을 가져다주는 '꿀팁' 같은 에디터예요. 이 포스팅이 여러분의 Vim 사용에 작은 도움이 되었으면 좋겠습니다. 혹시 궁금한 점이 있다면 언제든지 댓글로 남겨주세요! 😊

자주 묻는 질문 ❓

Q: Vim이 뭔가요? vi랑 다른 건가요?
A: Vim은 'Vi IMproved'의 약자로, vi 에디터에서 기능이 개선되고 확장된 버전입니다. vi는 모든 유닉스/리눅스 시스템에 기본으로 설치되어 있는 텍스트 에디터이며, Vim은 vi와 호환되면서 더 강력한 기능을 제공해요.
Q: 왜 화살표 키 대신 h, j, k, l을 써야 하나요?
A: 화살표 키는 키보드의 오른쪽에 따로 떨어져 있어 손을 많이 움직여야 합니다. 반면 h, j, k, l은 키보드 중앙에 위치해 있어 손의 피로도를 줄이고 편집 속도를 높일 수 있어요. '홈 로우(Home Row)'에서 손을 떼지 않고 모든 작업을 처리할 수 있다는 장점 때문입니다.
Q: 실수로 ESC를 눌렀는데 어떻게 텍스트를 다시 입력하죠?
A: ESC를 누르면 입력 모드에서 명령 모드로 전환됩니다. 다시 텍스트를 입력하려면 'i' (현재 커서 위치에 삽입), 'a' (커서 바로 뒤에 삽입), 또는 'o' (아래 줄에 삽입) 등의 명령어를 누르면 다시 입력 모드로 진입할 수 있습니다.
Q: Vim을 더 편하게 쓸 수 있는 방법이 있나요?
A: Vim은 플러그인 설치를 통해 다양한 기능을 추가할 수 있어요. 코드 하이라이팅, 자동 완성, 파일 탐색기 등 여러 플러그인을 활용하면 IDE처럼 강력한 기능을 사용할 수 있습니다. Vim을 더 깊이 공부하고 싶으시다면 플러그인 매니저(예: Vundle, vim-plug) 사용법을 익히는 것도 좋은 방법이에요.
Q: 'vimtutor'라는 명령어가 있던데, 그건 뭔가요?
A: vimtutor는 Vim이 제공하는 내장 튜토리얼입니다. 터미널에 vimtutor를 입력하면 Vim의 기본적인 사용법을 단계별로 실습하면서 배울 수 있습니다. 약 30분 정도 소요되며, 오늘 배운 내용들을 직접 따라 해보는 데 아주 유용해요!