Emacs 31 내장 markdown-ts-mode, Tree-sitter 문법 설치와 실험 모드 활성화 방법
- Emacs 31의 markdown-ts-mode는 내장 모드지만 실험 단계라 기본 활성화되지 않으며,
require와 파일 확장자 연결로 명시적으로 로드해야 함 - 모드는 CommonMark 전체와 GFM 대부분을 지원하며, 비 Tree-sitter 모드도 포함한 코드 블록, 목차 도구,
pandoc및gfm변환기 연동을 제공함 - 처음 Markdown 파일을 열 때 시스템에 문법이 없으면 Emacs가 저장소에서 내려받아 컴파일하도록 제안하며, markdown과 inline 두 Tree-sitter 문법이 필요함
- 별도 패키지 설치는 필요 없으며, 저자는 MELPA의 오래된 보관 저장소 markdown-ts-mode는 Emacs 31 이상에서 설치를 거부하고 기능도 부족하다고 설명함
- 설정 변경 없이 시험하려면 설정 코드를
testing.el에 저장한 뒤emacs -Q --load로 최소 구성 Emacs를 실행하는 방법을 제시함
Hacker News 의견들
최근 Emacs를 안 따라갔다면 ts-mode가 뭔지 헷갈릴 수 있음. tree-sitter로 파싱과 하이라이팅 등을 하는 모드라는 뜻임.
Emacs에서 생성형 코딩을 PR처럼 검토하고 다음 생성에 코멘트까지 넘기는 흐름을 찾는 중임. 최신 Emacs에서는 AI 코딩 패키지가 잘 안 돌아가더라.
어떤 AI 코딩 패키지 말하는 거임? Agent Shell인지 gptel-agent인지 궁금함.
로컬 Claude Code에 ACP로 연결한 Agent Shell을 쓰는 중임.
나는 gptel로 org-babel 블록을 생성해 tangle하거나, 프로젝트 파일을 도구로 수정하게 한 뒤 Magit에서 검토함.
Emacs에서 생성형 코딩이 잘 맞는 이유는 Magit으로 코드 리뷰하기 좋아서임. 좋은 에이전트 연동이라면 현재 커서 줄과 파일을 에이전트에 보내 참조나 코멘트를 남길 명령이 있어야 함.
Windows 11과 WSL2에서 WezTerm으로 emacs -nw를 실행하고, Emacs 안 vterm에서 Claude Code를 돌림. dired와 Magit 사이 흐름용 명령도 만들었고, 가끔 copilot-chat과 copilot-mode로 Claude 결과를 검토함.
나는 ghostel로 Emacs 안에서 Claude Code를 쓰고, 생성 뒤에는 Magit으로 리뷰함.
Org 파일이 완전한 네이티브 Markdown이 아니라 협업 때 불편해서 Emacs를 그만뒀음. 체크리스트와 마감일 같은 Org 기본 기능을 Markdown 중심으로 쓰면서 init.el 주변에 설정을 둘 만한 흐름이 있으면 다시 쓰고 싶음.
Markdown 모드 자체의 어떤 점이 문제인지 궁금함. Markdown으로 Org agenda나 달력을 쓰고 싶은 경우라면 이해됨.
직접 시험하진 않았지만 Markdown과 Org-mode 사이 변환을 개선하는 방법은 있음. 링크한 영상이 그 예임.
데스크톱에서는 Markdown과 nvim의 telekasten 플러그인을 쓰고, 모바일에서는 Obsidian을 씀. 내 경우에는 이 정도면 충분함.
Org-mode는 Markdown보다 훨씬 많은 기능을 한 덩어리로 제공함. Markdown을 Org처럼 확장하려는 시도는 여러 문법으로 갈렸고, 20년간 둘을 같이 써 본 내 경험으로는 Markdown을 Org처럼 쓰려는 방식이 잘 되지 않았음.
나는 Markdown을 피하기 어려워서 prisma.el을 만들었음.
ts는 tree-sitter를 뜻하고, CommonMark와 GFM을 지원해서 체크박스와 취소선 등을 바로 씀. 이 모드는 내장돼 있지만 실험 단계라 직접 로드해서 써야 함.
Emacs 31에서는 파일 형식을 따로 등록할 필요가 없는 듯함. 예전 markdown-mode를 지운 뒤에는 Markdown 파일이 자동으로 열림.
Emacs의 Tree-sitter 지원은 LSP의 Eglot처럼 준비 작업을 대신해 주지 않는다는 점에서 미완성임. 문법은 포함하지 않고, 사용자가 문법 저장소를 찾아 컴파일해야 하며 안전하고 잘 관리되는 저장소를 안내하는 방식도 부족함.