Treesitter — 코드를 패턴이 아니라 트리로
Vim의 옛 syntax 표시는 regex 기반이야. 토큰 종류를 패턴으로 맞춰서 색을 칠하는 거지. 돌아가긴 하는데 코드를 이해하지는 못해. Treesitter는 코드를 진짜 Abstract Syntax Tree (AST) 로 파싱해서 그걸 색 표시와 들여쓰기와 구조 단위 text object에 써. 더 빠르고, 더 정확하고, regex로는 꿈도 못 꿀 것들을 열어줘.
Treesitter가 실제로 주는 것
- 더 나은 색 표시 — 문자열 안의 보간, JSX 중첩, Markdown 코드 블록까지 제대로 칠해줘.
- 똑똑한 들여쓰기 — 맥락이 중요한 언어에서 (Python, Lua, JSX).
- 점점 넓혀가는 선택 —
Ctrl-Space를 누를 때마다 선택이 AST 노드 한 단계씩 넓어져. 단어에서 표현식으로, 문장으로, 함수로. Visual 선택에서는 거의 마법이야. - 구조 단위 text object — 짝 plugin인
nvim-treesitter-textobjects를 얹으면af(함수 통째로),if(함수 안쪽),ac(클래스 통째로),ic(클래스 안쪽) 를 쓸 수 있어. operator와 붙이면daf는 함수를 통째로 지우고cif는 함수 본문을 갈아끼워. - syntax로 접기 — regex로 대충 흉내 낸 게 아니라 코드를 이해하는 진짜 fold야.
Telescope — 뭐든 찾아주는 fuzzy finder
telescope.nvim이 fuzzy finder야. 파일, buffer, grep 결과, LSP 심볼, 최근 파일, 도움말 태그, git 브랜치, 명령 기록까지 — "고를 수 있는 목록"이 있는 건 뭐든 Telescope 화면으로 띄울 수 있어. 쓰는 방식은 전부 같아. 화면이 뜨고, 치면 걸러지고, Enter로 고르는 거야.
매일 쓰게 될 것들
find_files— 파일 fuzzy 찾아 열기.Cmd-P자리야.live_grep— 프로젝트 전체에서 파일 내용 검색.Cmd-Shift-F자리고.buffers— 열린 buffer 사이 이동.oldfiles— 최근 연 파일 (Neovim을 껐다 켜도 남아).lsp_document_symbols— 지금 파일의 개요 (함수, 클래스).lsp_workspace_symbols— 프로젝트 전체에서 심볼 검색.diagnostics— LSP 에러와 경고, 걸러서 보기.help_tags— Neovim 도움말을 fuzzy로 검색.
Telescope 하나가 메뉴 셋을 대신해. 명령 팔레트, 파일 열기 대화창, 전체 검색 패널이 키 하나짜리 패턴으로 합쳐져.
<leader>ff, <leader>fg, <leader>fb가 손에 붙고 나면 어떤 프로젝트에서 뭘 열든 키 두 번에 몇 글자면 끝이야.