본문 바로가기
C.W.K.
Stream
Lesson 03 of 04 · published

맞춤법 검사와 코드 fold

~10 min · vim, spell, folding

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

Vim 안에서 맞춤법 검사

Vim에 쓸 만한 맞춤법 검사기가 들어 있어. 켜면 틀린 단어에 표시가 붙고, 그 사이를 오가면서 고칠 후보를 받고, 모르는 단어는 개인 사전에 넣을 수 있어. 산문뿐 아니라 commit message나 코드 주석에도 요긴해.

Fold — 지금 안 보는 코드는 접어두기

fold는 줄 묶음을 한 줄짜리 자리표시자 뒤로 숨겨줘. 큰 파일을 돌아다닐 때 좋아. 관심 없는 함수를 다 접고 하나에만 집중하는 거지. Vim에는 fold 방식이 여러 개 있어. 수동, indent, syntax, marker, expression. 코드에 제일 쓸 만한 건 indent (들여쓰기 깊이로 접기) 아니면 syntax (언어 구조로 접기, syntax 파일이 있어야 해) 야.

Fold 명령

돌아다니기: zo는 커서 위 fold를 열고, zc는 닫고, za는 토글해. zR은 파일의 모든 fold를 열고 zM은 전부 닫아. zjzk는 다음과 이전 fold로 뛰고.

수동 모드에서는 zf{motion}으로 원하는 범위에 fold를 만들어. zf3j면 아래 세 줄을, zfap면 단락 하나를 접어. zd는 fold를 없애고 (수동 모드에서만).

처음엔 fold 쓰지 마. 새로 시작한 사람 대부분이 fold랑 싸워. 에디터가 자꾸 접어버리는데 어떻게 다시 여는지를 모르거든. zR이 전부 펼쳐주니까 이거 하나만 기억하면 언제든 빠져나올 수 있어. syntax 기반 folding (트랙 8의 Treesitter folding) 은 fold 없이 큰 파일을 다루는 법부터 익힌 다음에 건드려.

Code

맞춤법 검사·vim
:set spell                    " 맞춤법 검사 활성화
:set spelllang=en_us          " 언어 설정
:set nospell                  " 비활성화

]s        " 다음 잘못된 단어로 점프
[s        " 이전으로
z=        " 수정 제안 (대화형)
zg        " 커서 위 단어 사전에 추가
zw        " 단어를 잘못된 걸로 표시
zug       " zg 취소
zuw       " zw 취소
Fold·vim
:set foldmethod=indent     " 들여쓰기로 fold
:set foldmethod=syntax     " syntax 로 fold (syntax 파일 필요)
:set foldmethod=marker     " buffer 의 marker 로 fold
:set foldmethod=manual     " 명시적으로 fold 생성

zo        " 커서 위 fold 열기
zc        " 커서 위 fold 닫기
za        " fold 토글
zR        " 모든 fold 열기
zM        " 모든 fold 닫기
zj        " 다음 fold 로 점프
zk        " 이전 fold 로 점프
zf{motion}    " motion 에 fold 생성 (수동 모드)
zd        " fold 삭제 (수동 모드)

External links

Exercise

긴 소스 파일이나 markdown 문서를 열어. foldmethod=indent를 걸고 zM (전부 닫기), zj / zk (fold 사이 이동), zo (하나 열어서 확인), zR (탈출용 전부 열기) 로 파일을 훑어봐. 맞춤법은 markdown 파일에서 :set spell을 켜고 ]s로 틀린 단어를 오간 다음 z=1과 Enter로 첫 후보를 받아들이면 돼.

Progress

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

댓글 0

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

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