Zed
Zed는 Atom 개발자들이 만든 고성능 에디터입니다. Rust로 빌드되었으며 GPU 가속 UI를 제공합니다. 2025년에는 Zeta(오픈 모델 AI)와 ACP(Agent Client Protocol)가 도입되었습니다.
사용 시기
- 고성능 Rust 엔지니어링 코드 편집: 밀리초 미만의 타이핑 지연 시간, 즉각적인 파일 열기, 부드러운 120 FPS 렌더링.
- 실시간 멀티플레이어 페어 프로그래밍: 오디오 채팅과 공유 커서 세션으로 에디터 버퍼에서 직접 협업.
- 통합 언어 모델(LLM) 어시스턴트: 코드 생성, 함수 리팩토링, 코드베이스 컨텍스트 쿼리를 기본적으로 지원.
- 최신 Tree-sitter 및 LSP 다중 언어 개발: Rust, TypeScript, Python, Go에 대한 즉각적인 기본 지원.
빠른 시작
1. 최소 ~/.config/zed/settings.json
{
"theme": "One Dark",
"buffer_font_family": "JetBrains Mono",
"buffer_font_size": 14,
"tab_size": 2,
"hard_tabs": false,
"format_on_save": "on",
"formatter": "auto",
"lsp": {
"rust-analyzer": {
"initialization_options": {
"checkOnSave": { "command": "clippy" }
}
}
}
}
2. 핵심 단축키
Cmd + P: 파일 찾기Cmd + Shift + P: 명령어 팔레트Cmd + Shift + F: 프로젝트 검색Cmd + ?: AI 어시스턴트 패널 토글
핵심 개념
프로덕션 Zed 구성 (~/.config/zed/settings.json)
타이포그래피, 포매터, LSP 언어 서버, AI 통합 구성:
{
"theme": "One Dark",
"ui_font_size": 15,
"buffer_font_size": 14,
"buffer_font_family": "JetBrains Mono",
"autosave": "on_focus_change",
"format_on_save": "on",
"tab_size": 2,
"telemetry": {
"diagnostics": false,
"metrics": false
},
"languages": {
"TypeScript": {
"language_servers": ["vtsls", "!typescript-language-server"],
"formatter": {
"external": {
"command": "prettier",
"arguments": ["--stdin-filepath", "{buffer_path}"]
}
}
},
"Rust": {
"language_servers": ["rust-analyzer"]
},
"Python": {
"language_servers": ["pyright", "ruff"]
}
},
"assistant": {
"default_model": {
"provider": "anthropic",
"model": "claude-3-5-sonnet"
}
}
}
사용자 모달 및 Vim 키바인딩 (~/.config/zed/keymap.json)
고속 탐색을 위한 키맵 사용자 정의:
[
{
"context": "Editor && vim_mode == normal",
"bindings": {
"space f f": "file_finder::Toggle",
"space f g": "pane::DeploySearch",
"space b d": "pane::CloseActiveItem",
"space c a": "editor::ToggleCodeActions",
"g d": "editor::GoToDefinition",
"g r": "editor::FindAllReferences"
}
}
]
즉시 멀티플레이어 협업
- 오른쪽 상단 창 헤더의 협업 아이콘을 클릭합니다.
- 방 링크를 공유하거나 GitHub 사용자 이름으로 팀원을 초대합니다.
- 팀원은 화면 공유 지연 없이 에디터 보기를 공유하고, 커서를 따라가며 코드를 동시에 편집합니다.
일반적인 패턴
멀티 버퍼 프로젝트 검색 및 교체
문제: 전체 코드베이스를 검색하고 단일 통합 버퍼에서 결과를 동시에 편집합니다. 해결책: 멀티 버퍼 에디터를 엽니다.
Cmd + Shift + F를 눌러 프로젝트 검색을 엽니다.- 검색어를 입력하고
Enter를 누릅니다. Option + Enter를 눌러 모든 일치 항목을 편집 가능한 멀티 버퍼로 확장합니다.- 여러 파일에 걸쳐 코드를 제자리에서 편집하고
Cmd + S로 저장하여 모든 파일에 적용합니다.
Zed에서 사용자 정의 언어 서버 구성
문제: Zed에서 특정 언어 서버 인수와 포매터를 구성합니다.
해결책: settings.json에서 서버 설정을 정의합니다.
{
"languages": {
"Python": {
"language_servers": ["pyright", "ruff"],
"format_on_save": "on",
"formatter": {
"external": {
"command": "ruff",
"arguments": ["format", "--stdin-filename", "{buffer_path}"]
}
}
}
}
}
모범 사례 (2026)
- 권장: 자동화된 코드 정리를 위해 외부 도구(Prettier, Ruff, Rustfmt)와 함께
format_on_save: "on"을 구성합니다. - 권장: TypeScript 개발 시 Zed에서
vtsls를 사용하여 뛰어난 성능과 메모리 효율성을 누리세요. - 권장: 모달 편집 워크플로우에 익숙하다면 Vim 모드(
"vim_mode": true)를 활성화하세요. - 권장: 코드베이스 컨텍스트와 함께 기본 어시스턴트 패널(
Cmd + ?)을 활용하여 빠른 리팩토링을 수행하세요. - 비권장: 빌드 캐시(
target,dist,.next)를 제외하지 않은 상태로 프로젝트 폴더를 과도하게 로드하지 마세요. - 비권장:
settings.json에 개인 API 키를 하드코딩하지 말고 시스템 키체인 또는 환경 변수를 사용하세요. - 비권장: 민감한 프로덕션 구성 파일을 편집할 때 협업 방을 공개 상태로 두지 마세요.
문제 해결
| 오류/증상 | 원인 | 해결 방법 |
|---|---|---|
| 언어 서버 초기화 실패 | 시스템 $PATH에 서버 바이너리(예: gopls, pyright)가 없음 | 서버 바이너리를 전역으로 설치하거나 사용자 셸 환경에서 접근 가능하도록 설정. |
| 시스템 단축키와 키바인딩 충돌 | Mac 시스템 키보드 단축키가 Zed 키 입력을 가로챔 | ~/.config/zed/keymap.json에서 settings.json 키맵 오버라이드 확인. |
| Zed AI 어시스턴트 응답 실패 | API 키(OpenAI/Anthropic) 누락 또는 할당량 초과 | Zed 설정을 열고 "features": { "edit_prediction_provider": "copilot" } 구성 또는 API 키 제공. |