vim 쉽게 배우고 익히는 방법

대학생 시절 vim 에디터를 접하게 되면서 무시무시하게 많은 단축키들을 만났을 때, 이 단축키들을 잘 익히기만 하면 생산성이 대폭 향상되겠다는 생각을 했습니다. vim을 잘 다루는 게 진정한 개발자의 소양인 것처럼 보였죠. 그래서 vim에 익숙해지려고 노력했지만 결국 진입 장벽을 넘지 못하고 vim 입문에 실패했던 기억이 있습니다.

하지만 지금은 vim을 사용하는 것이 습관이 되었습니다. 이제는 vim 없이 코드를 작성하라고 하면 불편함을 많이 느낄 것 같습니다. vim에 익숙해지고 싶은 분들을 위해 제 생각을 공유해보려 합니다.

vim에 익숙해져야 하는 이유

코드 작성 시 생산성을 높이기 위해서 vim을 사용합니다. 코드를 작성하다 보면 반복적으로 마우스와 방향키를 조작하기 위해 오른손이 왔다 갔다 하게 됩니다. 산만한 움직임으로 집중력이 분산되고, 오타를 낼 확률도 높아집니다.

또한, 우리는 늘 사용하던 IDE에서 제공하는 단축키를 사용해오다가 다른 환경에서 코드를 작성하게 되었을 때 불편함을 느끼게 됩니다. vim은 텍스트 에디터이므로 어떤 환경에서든 가볍게 설치해서 사용할 수 있고, 대부분의 IDE에서 플러그인을 제공하고 있습니다. 그런 점에서 IDE에 종속되는 것 보다 vim에 종속되는 편이 낫다고 볼 수 있습니다.

누구나 한번쯤은 텍스트 에디터를 좀 더 효율적으로 사용하고 싶다는 생각을 해본 적이 있을 겁니다. 앞으로도 코드를 읽고 수정하는 일을 계속 해야 할텐데, 조금 노력해서 앞으로의 불편함을 제거할 수 있다면 남는 장사 아닐까요?

제가 영문 타자 연습을 해야 한다고 주장하는 이유와도 맥락이 비슷합니다. 이 글(개발자가 타자 연습을 해야 하는 이유👈click!!)을 참고하세요.

vim 입문하는 방법

작은 것부터 정복하세요

처음부터 모든 단축키를 외우려고 하지 마세요. 무엇을 새롭게 시작하든 높은 곳부터 올려다보면 겁을 먹게 됩니다. 시작도 하기 전에 스스로 사기를 꺾어버리지 마세요. 우리는 자주 사용하는 단축키부터 하나씩 천천히 익혀 나가야 합니다. 커서 이동부터 시작해 보세요!

팁을 드리자면 다른 단축키와의 조합으로 응용해서 사용할 수 있는 단축키를 우선적으로 익히는 게 좋습니다. 예를 들어, 3 d d 는 3 줄을 삭제할 때만 사용할 수 있지만 v를 누르고 3 줄을 영역 선택한 뒤 x를 눌러서 3 줄을 삭제할 수도 있습니다. 특수한 느낌의 단축키가 있다면 기본적으로 자주 사용되는 단축키들의 조합으로 응용할 수 있는지 생각해 보세요. 처음엔 자주 사용되는 단축키를 더 자주 사용해서 익숙하게 훈련하는 것이 우선입니다.

vim 단축키를 쉽게 외울 방법을 고민해 보세요

개발자가 단축키를 정할 때 어떤 기능을 어떤 키에 매핑하는 게 좋을지에 대해 나름의 고민이 있었을 겁니다. 단축키들을 보면서 규칙을 발견하거나 연상 되는 단어를 떠올려 보세요. 의미는 스스로 붙이기 나름입니다. 기억하기 쉬우면 그만이죠.

의식적으로 연습하세요

vim을 사용할 수 밖에 없는 상황 속에 자신을 밀어 넣는 것은 vim과 친해질 수 있는 가장 효과적인 방법입니다. 영어 실력을 높이고 싶으면 영어를 쓰는 외국인들과 함께 생활하면 되는 것과 같은 이치죠.

하지만 급한 업무가 있을 때 익숙하지 않은 vim을 사용한다면 시간 내에 업무를 처리하지 못합니다. 처음에는 커서를 이동하는 것 조차 어색하거든요. 그래서 저는 IDE에 vim 플러그인을 설치해두고 업무가 바쁘지 않을 때는 무조건 vim 모드를 ON, 바쁠 때는 vim 모드를 OFF 하면서 스스로 강제성을 부여했습니다.

programmers 같은 온라인 저지에서도 vim 에디터 모드를 제공하는 경우가 많습니다. 알고리즘 문제를 풀 때도 vim을 사용해 보세요!

활용도 높은 vim 단축키

vim에는 매우 많은 단축키들이 존재하지만 아래의 단축키들만 익숙하게 사용할 수 있어도 생산성이 높아지는 것을 느끼실 수 있습니다. 아래의 vim 단축키들을 익숙하게 사용하는 것을 첫 번째 목표로 하는 것을 추천합니다.

단축키설명연상 단어
h, j, k, l←, ↓, ↑, →
v영역 선택 모드 (on/off)
^ (Shift + 6)커서 위치 라인의 맨 앞 문자로 이동정규 표현식 ^
$ (Shift + 4)커서 위치 라인의 맨 뒷 문자로 이동정규 표현식 $
w다음 덩어리의 맨 앞 문자로 이동word
e다음 덩어리의 맨 끝 문자로 이동end
b이전 덩어리의 맨 앞 문자로 이동back
x선택된 영역 / 커서 위치의 문자 지우기 (y로 복사된 내용을 덮어씀)
i커서 위치에서 입력 모드 전환insert
esc입력 모드 → 명령 모드 전환
v i w커서 위치의 덩어리를 영역 선택
y선택된 영역의 내용을 복사
y y커서 위치에서 한 줄 복사
3 y y커서 위치에서 3 줄 복사 (숫자 변경 가능)
p커서 위치에 복사한 내용 붙여 넣기paste
d d커서 위치에서 한 줄 삭제
3 d d커서 위치에서 3 줄 삭제 (숫자 변경 가능)
u실행 취소undo
Ctrl + r실행 취소를 취소redo
가장 자주 쓰이는 vim 단축키

※ 문자열 치환

:%s/찾을 문자열/바꿀 문자열/g

따라 해보기

직접 눈으로 한 번 보고 따라 해보는 것이 글을 읽기만 하는 것보다 훨씬 효율적입니다. 실력을 높이려면 의식적인 연습이 필수라는 사실을 잊지 마세요! 제가 vim 단축키를 활용하는 모습을 아래의 영상에서 확인하실 수 있습니다. 한 번 따라서 작성해보시길 바랍니다.

vim으로 간단한 클래스 작성해보기
스스로 경험하며 얻은 깨달음을 공유하기 좋아하며, 세상이 필요로 하는 코드를 작성하기 위해 노력하는 개발자입니다.

“vim 입문하기 (핵심 vim 단축키 정리)”의 2개의 댓글

  • Windows의 키 로그 프로그램을 이용하면 어떤 키를 클릭했는지 영상을 통해 보여줄 때 좋을 것 같아요!!

    좋은 내용 감사드립니다

    • 오호라..!! 그런 프로그램이 있었군요 다음 영상 제작시 참고하도록 하겠습니다. 좋은 의견 감사합니다👍👍

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다