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

기본 이동

~14 min · vim, motion, navigation

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

왜 화살표 키 대신 h j k l 인가

화살표 키는 키보드 코너에 있어. 오른손이 홈 row 를 떠나서, 찾아서, 이동하고, 돌아와야 해. h j k l이미 오른손 밑에 있어. 첫날엔 이상하지만, 3 일째엔 화살표 키가 우회로 같아져.

Vim 은 1976 년 ADM-3A 터미널에서 디자인됐는데, 그 키보드의 그 글자들에 화살표 아이콘이 그려져 있었어. 컨벤션이 살아남은 건 역사적 이유가 아니라 기계적으로 우수해서야.

캐릭터 이동

h, j, k, l 은 왼쪽, 아래, 위, 오른쪽. j 가 아래인 건 descender 가 있어서, k 가 위인 건 ascender 가 있어서. 퀘스트 전체가 이런 mnemonic 사고들로 가득해.

단어 이동 — 첫 큰 속도 향상

캐릭터 단위로 깡총깡총 뛰는 건 fine-grained 편집엔 좋지만, 대부분은 단어 단위로 점프하고 싶어. w 는 다음 단어 시작, e 는 현재(또는 다음) 단어 끝, b 는 이전 단어 시작.

소문자는 punctuation 에서 멈춰: hello-world 를 세 단어로 봐. 대문자 (W E B) 는 whitespace 에서만 멈춰: 같은 문자열이 한 WORD. 둘 다 자주 써.

라인 이동

0 은 라인 시작; ^ 은 첫 non-blank 캐릭터 (보통 원하는 거); $ 는 끝. 키보드 숫자 행 상상해 — 0 은 가장 왼쪽, $ 는 오른쪽 4 위. 또 visual mnemonic.

파일 단위 이동

gg 는 첫 라인; G 는 마지막 라인. :42 는 42 라인 (42G 도 동일). Ctrl-dCtrl-u 는 반 페이지 아래/위; Ctrl-fCtrl-b 는 한 페이지.

count 써. 거의 모든 motion 이 앞에 숫자 받아: 5j 다섯 라인 아래, 3w 세 단어 앞, 10l 열 캐릭터 오른쪽. 트랙 4 의 set relativenumber 와 짝지으면, gutter 에서 숫자 읽어서 정확한 타깃으로 점프할 수 있어.

Code

캐릭터 이동 — h j k l·vim
h    " 왼쪽
j    " 아래
k    " 위
l    " 오른쪽
단어 이동·vim
w    " 다음 단어 시작
e    " 다음 단어 끝
b    " 이전 단어 시작
ge   " 이전 단어 끝
W    " 다음 WORD 시작 (whitespace 단위)
E    " 다음 WORD 끝
B    " 이전 WORD 시작
라인 이동·vim
0    " 첫 컬럼
^    " 첫 non-blank 캐릭터
$    " 라인 끝
g_   " 마지막 non-blank 캐릭터
|    " 첫 컬럼 (0 의 동의어)
5|   " 5 번 컬럼
파일 / 화면 이동·vim
gg       " 첫 라인
G        " 마지막 라인
:42      " 42 라인 (Command-line)
42G      " 42 라인 (Normal-mode 단축)
H        " 화면 맨 위 라인 ("High")
M        " 화면 중간 ("Middle")
L        " 화면 맨 아래 ("Low")
Ctrl-d   " 반 페이지 아래
Ctrl-u   " 반 페이지 위
Ctrl-f   " 한 페이지 앞
Ctrl-b   " 한 페이지 뒤
zz       " 커서를 화면 가운데로
zt       " 커서를 화면 위로
zb       " 커서를 화면 아래로

External links

Exercise

200 라인 이상 소스 파일 열어. Normal-mode motion 만 써서 (화살표 X, 마우스 X, : X) 도달해: (1) 50 라인, (2) 파일 중간, (3) 마지막 라인의 마지막 단어, (4) 첫 여는 괄호의 짝 닫는 괄호. 벤치마크 원하면 시간 재 — 15초 이내면 능숙해.

Progress

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

댓글 0

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

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