C.W.K.
Stream
Lesson 05 of 08 · published

Insert Mode — 텍스트 입력

~10 min · vim, insert-mode, basics

Level 0갇힌 자
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Insert mode 진입 8 가지 방법, 각자 역할 있음

Vim 은 "타이핑 시작" 키 한 개만 갖지 않아. 작은 패밀리가 있고, 각자 커서를 다른 위치에 놔. ia 의 차이는 사소해 보이지만, 1 년 편집하면 수천 번 절약된 motion 으로 쌓여.

여덟 개 entry

  • i — 커서 에 insert.
  • a — 커서 에 insert ("append").
  • I — 라인의 첫 non-blank 캐릭터에 insert.
  • A — 라인 끝에 insert.
  • o아래 에 새 라인 열고 insert 시작.
  • O 에 새 라인 열고 insert 시작.
  • s — 커서 위 캐릭터 삭제 후 insert 시작.
  • S — 라인 전체 삭제 후 insert 시작.

Normal mode 로 돌아가기

클래식 출구는 Esc. Ctrl-[ 도 똑같고 대부분 키보드 레이아웃에서 홈 row 에 더 가까워. Ctrl-c 도 나가는데 abbreviation expansion 은 건너뛰어 — Insert-mode abbreviation 정의해뒀는데 발동시키고 싶지 않을 때 유용해.

가장 사랑받는 매핑: Insert mode 에서 jj 또는 jkEsc 로 매핑. 코너로 손 뻗는 대신 인접한 홈 row 두 키. 진짜 코드에서 jj 거의 안 치니까 false-positive 거의 0.

이게 들리는 것보다 더 중요한 이유

A;$a; 의 차이는 한 키. o$a<Enter> 의 차이는 두 키. 이게 하루에 수천 번 일어나. Vim 이 빨라 보이는 건 한 가지 트릭 때문이 아니라, 흔한 모든 operation 이 디자인 단계부터 단일 키 entry 경로를 갖고 있어서야.

Code

Insert 변형 — 의식적으로 하나 골라가며 연습·vim
i    " 커서 앞 insert
a    " 커서 뒤 insert
I    " 라인 시작 (첫 non-blank) insert
A    " 라인 끝 insert
o    " 아래 새 라인 + insert
O    " 위 새 라인 + insert
s    " 캐릭터 substitute (한 개 삭제 + insert)
S    " 라인 substitute (라인 삭제 + insert)
Insert mode 나가는 세 가지 방법·vim
Esc       " 정통 출구
Ctrl-[    " Esc 와 동일, 손이 더 가까움
Ctrl-c    " abbreviation / autocmd 안 발동시키고 나감
고전 jk → Esc 매핑·vim
" Vimscript — ~/.vimrc 에 추가
inoremap jj <Esc>
inoremap jk <Esc>
Lua 버전 (Neovim)·lua
-- ~/.config/nvim/init.lua 에 추가
vim.keymap.set("i", "jj", "<Esc>")
vim.keymap.set("i", "jk", "<Esc>")

External links

Exercise

아무 소스 파일 열어. 화살표 키나 마우스 안 쓰고, 단일 Insert-mode entry 하나만 써서 세 가지 편집 해: (1) 아무 라인 끝에 // TODO 추가, (2) 두 기존 라인 사이에 빈 라인 삽입, (3) 단어의 첫 캐릭터를 대문자로 바꾸기. 속도가 포인트가 아니라 — 첫 시도에서 맞는 insert 변형을 고르는 게 포인트야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.