도구 / vim 연습기
vim 연습기
이 연습기가 실제 vim 과 같은 점
모드·연산자·이동·텍스트 오브젝트·되풀이(.)가 실제 vim 의 규칙대로 동작합니다.
화면 구성도 같습니다 — 왼쪽 줄번호, 파일 끝을 알리는 ~ 줄, 아래쪽 상태줄과 명령줄,
그리고 입력 중인 명령을 오른쪽에 보여 주는 showcmd 까지 그대로 둡니다.
cw가 dw와 다르게 낱말 뒤 공백을 남기는 vim 의 유명한 예외도 그대로 구현했습니다.
:q는 저장하지 않았으면 E37로 거절하고, 없는 명령에는 E492를 냅니다.
지원하지 않는 것은 되는 척하지 않습니다. 매크로(q), 이름 있는 레지스터,
마크, 폴드, 창 분할, 정규식 검색은 이 연습기에 없습니다. 지원하지 않는 키를 누르면 화면 아래에
그렇다고 알려 줍니다. :help limits 에 목록이 있습니다.
명령 92개 · 과제 50건 ·
입력 내용은 서버로 전송되지 않으며 :w는 실제 파일을 쓰지 않습니다.
모바일에서도 됩니까
됩니다. 화면이 좁으면 단축키 패널이 아래로 내려가고, 물리 키보드가 없는 기기에는
화면 아래에 vim 키 패드가 나타납니다. Esc hjkl dcy
: / 를 눌러 그대로 연습할 수 있습니다.
다만 vim 은 본래 물리 키보드를 전제로 만든 편집기입니다. 손에 익히는 목적이라면 키보드가 있는 환경에서 연습하는 편이 훨씬 빠릅니다. 모바일은 "이동 중에 명령을 확인하고 한두 과제를 풀어 보는" 용도로 생각해 주세요.
더 읽을 것
-
vim 종료·저장 방법 — :wq 부터 강제 종료까지
vim 에서 나가는 방법을 상황별로 정리했습니다. 저장하고 나가기, 저장 없이 나가기, 읽기 전용 파일 강제 저장, E37 오류 대처까지 실제 동작 기준으로 설명합니다.
-
vim 모드 완전 이해 — 노멀·입력·비주얼·명령줄
vim 이 모드를 쓰는 이유와 네 가지 모드의 차이, 모드 사이를 오가는 키를 정리했습니다. 모드를 이해하면 vim 의 나머지는 전부 이 위에 얹힙니다.
-
vim 커서 이동 총정리 — 방향키를 놓는 순서
hjkl 부터 w b e f t % gg G 까지, vim 이동 명령을 쓰는 순서대로 정리했습니다. 이동은 그 자체로도 쓰고 연산자 뒤에 붙여 범위로도 씁니다.
-
vim 연산자 — d c y 와 [연산자][이동] 문법
vim 편집의 문법은 [개수][연산자][개수][이동] 하나입니다. dw cw yy D C 를 외우는 대신 조합 규칙을 이해하는 방법을 설명합니다.
-
vim 텍스트 오브젝트 — ciw · ci" · di( 가 바꾸는 것
커서를 정확한 자리에 두지 않아도 편집할 수 있게 해 주는 텍스트 오브젝트를 정리했습니다. 실무에서 가장 많이 쓰는 vim 기능입니다.
-
vim 검색과 치환 — / ? n N 과 :%s 완전 정리
vim 검색 이동과 :s 치환 문법을 플래그와 범위까지 정리했습니다. 확인하며 치환하는 c 플래그, 대소문자 무시 옵션도 다룹니다.
-
처음 쓰는 .vimrc — 꼭 넣을 설정 12줄
vim 을 설치하고 처음 만드는 .vimrc 에 넣을 설정을 이유와 함께 정리했습니다. 줄번호, 검색 옵션, 들여쓰기, 클립보드까지.
vim 연습기 사용 안내
실제 vim 화면에서 명령을 눌러 가며 익히는 연습기입니다. 왼쪽 단축키 목록을 누르면 그 명령만 쓰는 연습이 바로 시작되고, :help 와 : 명령줄까지 동작합니다.
왼쪽에서 단축키나 과제를 고르고 가운데 편집 창을 눌러 키를 입력하세요. 오른쪽의 목표 상태와 같아지면 통과입니다. 막히면 :help 를 치거나 힌트를 펼쳐 보세요. 물리 키보드가 없으면 화면 아래 키 패드를 쓸 수 있습니다.
어떻게 구현했나
브라우저에서 도는 vim 에뮬레이터입니다. 모드·연산자·이동·텍스트 오브젝트·되풀이(.)가 실제 vim 의 규칙대로 동작하며, cw 가 dw 와 달리 낱말 뒤 공백을 남기는 예외까지 구현했습니다.
치트시트에 적은 키는 전부 실제로 동작합니다. 각 항목에 연습용 키 순서가 함께 들어 있고, 자동 테스트가 그 순서를 엔진에 먹여 목표 상태가 나오는지 검증합니다. 그래서 '적어 두고 안 되는 키'가 생기지 않습니다.
지원하지 않는 키는 먹은 척하지 않고 화면 아래에 그렇다고 알립니다. 매크로·이름 있는 레지스터·마크·폴드·창 분할·정규식 검색은 일부러 넣지 않았고 :help limits 에 목록이 있습니다.
연습 버퍼는 브라우저 메모리에만 있고 서버로 전송되지 않습니다. :w 는 실제 파일을 쓰지 않으며 상태줄의 [+] 표시만 지웁니다. 과제 진행 상황은 이 브라우저에만 저장됩니다.
자주 묻는 질문
입력한 데이터는 어디에서 처리하나요?
이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.
결과가 예상과 다르면 어떻게 하나요?
입력 형식, 문자 인코딩과 선택한 옵션을 확인하세요. 각 도구가 안내하는 지원 범위와 제한을 확인하고, 원본 데이터를 보관한 상태에서 결과를 검토하세요.