Devin.KR

도구 / vim 연습기

vim 연습기

practice.txt [연습 버퍼 · 저장되지 않습니다] hjkl 로 이동 · 방향키는 받지 않습니다
practice.txt 1,1 All

이 연습기가 실제 vim 과 같은 점

모드·연산자·이동·텍스트 오브젝트·되풀이(.)가 실제 vim 의 규칙대로 동작합니다. 화면 구성도 같습니다 — 왼쪽 줄번호, 파일 끝을 알리는 ~ 줄, 아래쪽 상태줄과 명령줄, 그리고 입력 중인 명령을 오른쪽에 보여 주는 showcmd 까지 그대로 둡니다.

cw가 dw와 다르게 낱말 뒤 공백을 남기는 vim 의 유명한 예외도 그대로 구현했습니다. :q는 저장하지 않았으면 E37로 거절하고, 없는 명령에는 E492를 냅니다.

지원하지 않는 것은 되는 척하지 않습니다. 매크로(q), 이름 있는 레지스터, 마크, 폴드, 창 분할, 정규식 검색은 이 연습기에 없습니다. 지원하지 않는 키를 누르면 화면 아래에 그렇다고 알려 줍니다. :help limits 에 목록이 있습니다.

명령 92개 · 과제 50건 · 입력 내용은 서버로 전송되지 않으며 :w는 실제 파일을 쓰지 않습니다.

모바일에서도 됩니까

됩니다. 화면이 좁으면 단축키 패널이 아래로 내려가고, 물리 키보드가 없는 기기에는 화면 아래에 vim 키 패드가 나타납니다. Esc hjkl dcy : / 를 눌러 그대로 연습할 수 있습니다.

다만 vim 은 본래 물리 키보드를 전제로 만든 편집기입니다. 손에 익히는 목적이라면 키보드가 있는 환경에서 연습하는 편이 훨씬 빠릅니다. 모바일은 "이동 중에 명령을 확인하고 한두 과제를 풀어 보는" 용도로 생각해 주세요.

더 읽을 것

MADE FOR YOUR WORK

이럴 때 쓰세요

서버에서 vi 가 열렸을 때

crontab -e 나 git 커밋 메시지에서 vi 가 뜨면 당황하기 쉽습니다. i, Esc, :wq 와 :q! 부터 미리 손에 익혀 둡니다.

IDE vim 모드 적응

IntelliJ IdeaVim, VS Code Vim 처럼 vim 키를 쓰는 환경으로 옮기기 전에 이동과 연산자 문법을 연습합니다.

헷갈리는 명령 바로 확인

cw 와 dw 의 차이, ci" 와 da" 의 차이처럼 헷갈리는 명령을 목록에서 눌러 결과를 눈으로 확인합니다.

STEP BY STEP

vim 연습기 사용 방법

이렇게 쓰세요

  1. 단축키나 과제 고르기

    왼쪽 패널의 단축키 탭에서 명령을 누르거나, 과제 탭에서 코스의 과제를 고릅니다. 검색 칸에 dw 나 '낱말'처럼 입력해 찾을 수도 있습니다.

  2. 편집 창을 누르고 키 입력

    가운데 편집 창을 누른 뒤 키를 칩니다. 이동은 hjkl 로 하며 방향키는 받지 않습니다.

  3. 목표 상태와 비교

    편집 결과가 오른쪽 목표 상태와 같아지면 통과입니다. 과제마다 적힌 예시 풀이 타수와 비교해 더 짧은 방법을 찾아 보세요.

  4. 막히면 힌트와 :help

    힌트 보기를 펼치거나 :help 를 입력해 도움말을 엽니다. 다시 버튼을 누르면 과제가 처음 상태로 돌아갑니다.

UNDERSTAND THE BASICS

vim 명령은 '연산자 + 이동'으로 읽는다

vim 은 모드에 따라 같은 키의 뜻이 달라집니다. 노멀 모드에서는 키가 명령이고, i 나 a 로 입력 모드에 들어가야 글자가 들어갑니다. Esc 를 누르면 다시 노멀 모드로 돌아옵니다.

편집 명령 대부분은 연산자 뒤에 이동을 붙인 조합입니다. d 는 지우기, c 는 바꾸기, y 는 복사이고 w 는 다음 낱말, $ 는 줄 끝입니다. 그래서 dw 는 낱말 지우기, c$ 는 줄 끝까지 바꾸기, y$ 는 줄 끝까지 복사가 됩니다. 앞에 숫자를 붙이면 d2w 처럼 여러 번 반복합니다.

텍스트 오브젝트는 커서를 정확히 두지 않아도 되는 대상입니다. iw 는 커서가 놓인 낱말, i" 는 따옴표 안쪽, a( 는 괄호까지 포함한 범위라서 ciw, ci", da( 처럼 씁니다. 마지막 변경은 . 으로 되풀이하고 u 로 되돌립니다.

이 연습기는 모드, 연산자, 이동, 텍스트 오브젝트, 되풀이를 vim 규칙대로 구현했지만 매크로, 이름 있는 레지스터, 마크, 폴드, 창 분할, 정규식 검색은 지원하지 않습니다. 검색은 입력한 글자를 그대로 찾습니다.

먼저 익히면 좋은 vim 명령
명령뜻
i · a · o커서 앞·뒤·아랫줄에서 입력 시작
h j k l왼쪽·아래·위·오른쪽 이동
w · b · e다음 낱말 시작·이전 낱말 시작·낱말 끝
dw · dd낱말 지우기 · 줄 지우기
ciw커서가 놓인 낱말 바꾸기
yy · p줄 복사 · 붙여넣기
u · .되돌리기 · 마지막 변경 되풀이
:%s/a/b/g파일 전체에서 a 를 b 로 치환
:wq · :q!저장하고 종료 · 저장하지 않고 종료

vim 연습기 사용 안내

실제 vim 화면에서 명령을 눌러 가며 익히는 연습기입니다. 왼쪽 단축키 목록을 누르면 그 명령만 쓰는 연습이 바로 시작되고, :help 와 : 명령줄까지 동작합니다.

왼쪽에서 단축키나 과제를 고르고 가운데 편집 창을 눌러 키를 입력하세요. 오른쪽의 목표 상태와 같아지면 통과입니다. 막히면 :help 를 치거나 힌트를 펼쳐 보세요. 물리 키보드가 없으면 화면 아래 키 패드를 쓸 수 있습니다.

QUICK EXAMPLE

vim 연습기 사용 예제

입력 · 시작

노멀 모드에서 dw

결과 · 확인

현재 위치에서 단어 삭제 연습

학습용 구현이므로 실제 Vim의 모든 플러그인과 명령을 지원하지 않습니다.

어떻게 구현했나

브라우저에서 도는 vim 에뮬레이터입니다. 모드·연산자·이동·텍스트 오브젝트·되풀이(.)가 실제 vim 의 규칙대로 동작하며, cw 가 dw 와 달리 낱말 뒤 공백을 남기는 예외까지 구현했습니다.

치트시트에 적은 키는 전부 실제로 동작합니다. 각 항목에 연습용 키 순서가 함께 들어 있고, 자동 테스트가 그 순서를 엔진에 먹여 목표 상태가 나오는지 검증합니다. 그래서 '적어 두고 안 되는 키'가 생기지 않습니다.

지원하지 않는 키는 먹은 척하지 않고 화면 아래에 그렇다고 알립니다. 매크로·이름 있는 레지스터·마크·폴드·창 분할·정규식 검색은 일부러 넣지 않았고 :help limits 에 목록이 있습니다.

연습 버퍼는 브라우저 메모리에만 있고 서버로 전송되지 않습니다. :w 는 실제 파일을 쓰지 않으며 상태줄의 [+] 표시만 지웁니다. 과제 진행 상황은 이 브라우저에만 저장됩니다.

BEFORE YOU FINISH

자주 하는 실수

입력 모드에서 명령을 친다

글자가 그대로 들어가면 아직 입력 모드입니다. Esc 로 노멀 모드로 돌아온 뒤 명령을 치세요.

방향키로 이동한다

이 연습기는 방향키를 받지 않습니다. hjkl 과 w, b, f{글자} 같은 이동에 익숙해져야 연산자와 조합할 수 있습니다.

cw 가 dw 와 같다고 생각한다

dw 는 낱말 뒤 공백까지 지우지만 cw 는 공백을 남기고 낱말만 바꿉니다. vim 의 유명한 예외이며 이 연습기도 그대로 동작합니다.

자주 묻는 질문

vim 에서 저장하지 않고 나가려면 어떻게 하나요?

노멀 모드에서 :q! 를 입력합니다. 저장하지 않은 변경이 있을 때 :q 만 치면 E37 오류로 거절합니다. 저장하고 나가려면 :wq 입니다.

모바일에서도 연습할 수 있나요?

됩니다. 물리 키보드가 없으면 화면 아래에 Esc, hjkl, d, c, y, :, / 같은 키가 있는 vim 키 패드가 나타납니다. 다만 손에 익히려면 키보드가 있는 환경이 훨씬 빠릅니다.

:w 를 치면 파일이 저장되나요?

아닙니다. 연습 버퍼는 브라우저 메모리에만 있고 :w 는 실제 파일을 쓰지 않습니다. 과제를 푼 기록만 이 브라우저에 남습니다.

매크로나 정규식 검색도 연습할 수 있나요?

지원하지 않습니다. 매크로, 이름 있는 레지스터, 마크, 폴드, 창 분할, 정규식 검색은 이 연습기에 없고, 지원하지 않는 키를 누르면 화면 아래에 알려 줍니다. :help limits 에 목록이 있습니다.

vimtutor 와 무엇이 다른가요?

vimtutor 는 터미널에서 문서를 읽으며 따라 하는 공식 연습입니다. 이 연습기는 설치 없이 브라우저에서 명령을 골라 바로 연습하고, 과제마다 목표 상태와 예시 풀이 타수로 결과를 확인합니다.

입력한 데이터는 어디에서 처리하나요?

연습 버퍼는 브라우저 메모리에만 있고 :w 도 실제 파일을 쓰지 않습니다. 입력한 키와 내용은 서버로 보내지 않으며, 푼 과제 표시만 이 브라우저에 남습니다.

함께 쓰면 좋은 도구

전체 도구 바로가기

손으로 익히기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상