Skip to content

zed

Zed editor — Rust-based, GPU-rendered.

settings.json

// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
    // 1. INDENTATION & FORMATTING
    "diff_view_style": "split",
    "hard_tabs": true,
    "tab_size": 2,
    "format_on_save": "on",
    "remove_trailing_whitespace_on_save": true,
    "ensure_final_newline_on_save": true,
    "languages": {
        "Markdown": { "hard_tabs": false, "tab_size": 2 },
        "YAML": { "hard_tabs": false, "tab_size": 2 },
        "JavaScript": { "formatter": { "language_server": { "name": "biome" } } },
        "TypeScript": { "formatter": { "language_server": { "name": "biome" } } },
        "TSX": { "formatter": { "language_server": { "name": "biome" } } },
        "Python": {
            "hard_tabs": false,
            "tab_size": 4,
            "formatter": { "language_server": { "name": "ruff" } },
        },
        "Go": { "hard_tabs": true, "tab_size": 4 },
        "YAML": { "format_on_save": "off" },
    },
    // 2. VISUAL DISPLAY
    "vim_mode": true,
    "relative_line_numbers": "enabled",
    "soft_wrap": "none",
    "cursor_blink": false,
    // "inlay_hints": {
    //  ""
    // },
    "show_whitespaces": "selection",
    "buffer_font_family": "JetBrains Mono",
    "ui_font_size": 16,
    "buffer_font_size": 15,
    "theme": {
        "mode": "system",
        "light": "Gruvbox Light",
        "dark": "Gruvbox Dark",
    },
    "icon_theme": {
        "mode": "system",
        "light": "Zed (Default)",
        "dark": "Zed (Default)",
    },
    // 3. EDITOR CHROME
    "scrollbar": {
        "show": "never",
    },
    "tab_bar": {
        "show": true,
        "show_nav_history_buttons": false,
    },
    "tabs": {
        "file_icons": true,
        "git_status": true,
    },
    "indent_guides": {
        "enabled": true,
        "coloring": "indent_aware",
    },
    "toolbar": {
        "quick_actions": false,
    },
    "project_panel": {
        "dock": "left",
        "file_icons": true,
        "folder_icons": true,
        "git_status": true,
        "scrollbar": {
            "show": "never",
        },
    },
    // 4. FILE SCANNING & SEARCH SCOPE
    "file_scan_inclusions": [".env*"],
    "file_scan_exclusions": [
        "**/.git",
        "**/.svn",
        "**/.hg",
        "**/.jj",
        "**/CVS",
        "**/.DS_Store",
        "**/Thumbs.db",
        "**/.classpath",
        "**/.settings",
        "**/node_modules",
        "**/dist",
        "**/build",
        "**/coverage",
        "**/.next",
        "**/.turbo",
        "**/.serverless",
        "**/.venv",
        "**/__pycache__",
        "**/.pytest_cache",
        "**/.ruff_cache",
        "**/target",
    ],
    // 5. SAVE & SESSION BEHAVIOR
    "autosave": "on_focus_change",
    "session": {
        "trust_all_worktrees": true,
    },
    // 6. AI & AGENTS
    "agent_servers": {
        "codex-acp": {
            "type": "registry",
        },
        "claude-acp": {
            "type": "registry",
        },
    },
    "edit_predictions": {
        "disabled_globs": [
            "**/.git",
            "**/.svn",
            "**/.hg",
            "**/CVS",
            "**/.DS_Store",
            "**/Thumbs.db",
            "**/.classpath",
            "**/.settings",
            "**/.vscode",
            "**/.idea",
            "**/node_modules",
            "**/.serverless",
            "**/build",
            "**/dist",
            "**/coverage",
            "**/.venv",
            "**/__pycache__",
            "**/.ropeproject",
            "**/.pytest_cache",
            "**/.ruff_cache",
        ],
    },
    // 7. PRIVACY
    "telemetry": {
        "diagnostics": false,
        "metrics": false,
    },
    // 8. EDITOR-SPECIFIC
    "base_keymap": "JetBrains",
}

keymap.json

// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
    {
        "context": "Editor",
        "bindings": {
            "cmd-b": "multi_workspace::ToggleWorkspaceSidebar",
        },
    },
    {
        "context": "Workspace",
        "bindings": {
            "cmd-shift-p": "command_palette::Toggle",
            "cmd-p": "file_finder::Toggle",
            "shift shift": "file_finder::Toggle",
            "cmd-`": "workspace::ToggleBottomDock",
            "cmd-2": "agent::ToggleFocus",
            "cmd-t": "workspace::NewTerminal",
        },
    },
    {
        "context": "AgentPanel",
        "bindings": {
            "cmd-2": "workspace::ToggleLeftDock",
        },
    },
    {
        "context": "ProjectPanel && not_editing",
        "bindings": {
            // Navigation
            "enter": "project_panel::OpenPermanent",
            "escape": "project_panel::ToggleFocus",
            "h": "project_panel::CollapseSelectedEntry",
            "j": "menu::SelectNext",
            "k": "menu::SelectPrevious",
            "l": "project_panel::ExpandSelectedEntry",
            "-": "project_panel::SelectParent",
            // File ops
            "a": "project_panel::NewFile",
            "A": "project_panel::NewDirectory",
            "r": "project_panel::Rename",
            "d": "project_panel::Delete",
            "x": "project_panel::Cut",
            "c": "project_panel::Copy",
            "p": "project_panel::Paste",
            // Misc
            ":": "command_palette::Toggle",
            "/": "project_panel::NewSearchInDirectory",
        },
    },
    {
        "context": "EmptyPane || SharedScreen",
        "bindings": {
            "space space": "file_finder::Toggle",
            "space s g": "workspace::NewSearch",
            "space f p": "projects::OpenRecent",
            "space f n": "workspace::NewFile",
            "space q q": "zed::Quit",
            "space g g": [
                "task::Spawn",
                { "task_name": "lazygit", "reveal_target": "center" },
            ],
        },
    },
    {
        "context": "Editor && VimControl && !VimWaiting && !menu",
        "bindings": {
            "space space": "file_finder::Toggle",
            "space e": "project_panel::ToggleFocus",
            "space s g": "workspace::NewSearch",
            "space f r": "projects::OpenRecent",
            "space f n": "workspace::NewFile",
            "space g g": [
                "task::Spawn",
                {
                    "task_name": "lazygit",
                    "reveal_target": "center",
                },
            ],
            "space c r": "editor::Rename",

            // ToDo: split, focus, etc,.
        },
    },
]

tasks.json

[
  {
  "label": "lazygit",
  "command": "lazygit",
  "cwd": "$ZED_WORKTREE_ROOT",
    "use_new_terminal": false,
    "reveal": "always",
    "reveal_target": "center",
    "hide": "never",
    "shell": "system"
  }
]