Skip to content

Instantly share code, notes, and snippets.

@pedronauck
Created February 4, 2025 23:41
Show Gist options
  • Save pedronauck/21732d8cdb2ffb47035b70f57c2a7d12 to your computer and use it in GitHub Desktop.
Save pedronauck/21732d8cdb2ffb47035b70f57c2a7d12 to your computer and use it in GitHub Desktop.
Zed Configuration
// 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": "Workspace",
"bindings": {
"ctrl-s": "workspace::Save",
"cmd-ctrl-k": "zed::OpenKeymap",
"cmd-ctrl-s": "zed::OpenSettings",
"alt-p": "projects::OpenRecent",
"alt-t": "project_symbols::Toggle",
"alt-b": "branches::OpenRecent",
"cmd-ctrl-p": "command_palette::Toggle",
"ctrl-p": "file_finder::Toggle",
"cmd-p": "file_finder::Toggle",
"alt-g": ["task::Spawn", { "task_name": "start lazygit", "reveal_target": "center" }],
"cmd-t": "workspace::ToggleBottomDock",
"cmd-l": "workspace::ToggleRightDock",
"shift-escape": null
}
},
{
"context": "Editor && mode == full",
"use_key_equivalents": true,
"bindings": {
"ctrl-g": null
}
},
{
"context": "Editor && (vim_mode == normal || vim_mode == visual) && !VimWaiting && !menu",
"bindings": {
"ctrl-h": "pane::ActivatePrevItem",
"ctrl-l": "pane::ActivateNextItem",
"ctrl-k": "editor::MoveLineUp",
"ctrl-j": "editor::MoveLineDown",
"alt-f": ["buffer_search::Deploy", { "replace_enabled": false }],
"ctrl-alt-f": ["buffer_search::Deploy", { "replace_enabled": true }],
"cmd-ctrl-p": "command_palette::Toggle",
"ctrl-p": "file_finder::Toggle",
"cmd-p": "file_finder::Toggle",
"cmd-k": "assistant::InlineAssist",
"cmd-t": "workspace::ToggleBottomDock",
"alt-t": "project_symbols::Toggle",
"cmd-l": "workspace::ToggleRightDock",
"shift-escape": null,
"-": "project_panel::ToggleFocus",
"alt-;": "pane::SplitRight",
"alt-'": "pane::SplitDown",
"alt-w": "pane::CloseActiveItem",
"g j": "vim::JoinLines",
"g s a": [
"vim::PushOperator",
{
"AddSurrounds": {}
}
]
}
},
{
"context": "Editor && vim_mode == normal && !VimWaiting && !menu",
"bindings": {
"shift-k": "editor::Hover",
"alt-h": ["workspace::ActivatePaneInDirection", "Left"],
"alt-l": ["workspace::ActivatePaneInDirection", "Right"],
"alt-k": ["workspace::ActivatePaneInDirection", "Up"],
"alt-j": ["workspace::ActivatePaneInDirection", "Down"],
"space c p": ["workspace::SendKeystrokes", "^ y $"],
"space g g": ["workspace::SendKeystrokes", "alt-g"],
"space f f": "pane::DeploySearch",
"space s s": ["workspace::SendKeystrokes", "cmd-shift-o"],
// +LSP
"space c a": "editor::ToggleCodeActions",
"ctrl-.": "editor::ToggleCodeActions",
"alt-r": "editor::Rename",
"space c r": "editor::Rename",
// Diagnostic
"alt-x": "diagnostics::Deploy",
"space x x": "diagnostics::Deploy",
"space b d": "pane::CloseActiveItem",
"space b P": "pane::CloseInactiveItems",
"space space": "file_finder::Toggle",
"g s r": ["vim::PushOperator", { "ChangeSurrounds": {} }],
"g s d": ["vim::PushOperator", "DeleteSurrounds"]
}
},
{
"context": "vim_mode == normal && !menu",
"bindings": {
"shift-y": ["workspace::SendKeystrokes", "y $"]
}
},
{
"context": "vim_mode == normal || vim_mode == visual",
"bindings": {
"s": ["vim::PushOperator", { "Sneak": {} }],
"S": ["vim::PushOperator", { "SneakBackward": {} }]
}
},
{
"context": "Terminal",
"bindings": {
"alt-h": ["workspace::ActivatePaneInDirection", "Left"],
"alt-l": ["workspace::ActivatePaneInDirection", "Right"],
"alt-k": ["workspace::ActivatePaneInDirection", "Up"],
"alt-j": ["workspace::ActivatePaneInDirection", "Down"],
"shift-h": "pane::ActivatePrevItem",
"shift-l": "pane::ActivateNextItem",
"alt-y": "workspace::ToggleZoom",
"alt-;": "pane::SplitRight",
"alt-'": "pane::SplitDown",
"alt-n": "workspace::NewTerminal"
}
},
{
"context": "ProjectPanel && not_editing",
"bindings": {
"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",
// Navigate between panel
"alt-h": ["workspace::ActivatePaneInDirection", "Left"],
"alt-l": ["workspace::ActivatePaneInDirection", "Right"],
"alt-k": ["workspace::ActivatePaneInDirection", "Up"],
"alt-j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
{
"context": "ProjectPanel",
"bindings": {
"ctrl-p": "file_finder::Toggle"
}
},
{
// Panel nagivation
"context": "Dock",
"bindings": {
"alt-w h": ["workspace::ActivatePaneInDirection", "Left"],
"alt-w l": ["workspace::ActivatePaneInDirection", "Right"],
"alt-w k": ["workspace::ActivatePaneInDirection", "Up"],
"alt-w j": ["workspace::ActivatePaneInDirection", "Down"]
}
},
{
"context": "Workspace",
"bindings": {
// Map VSCode like keybindings
"cmd-b": "workspace::ToggleLeftDock"
}
}
]
{
// AI Assistant Configuration
"assistant": {
"default_model": {
"provider": "anthropic",
"model": "claude-3-5-sonnet-latest"
},
"version": "2"
},
// Core Editor Settings
"vim_mode": true,
"show_completions_on_input": true,
"cursor_shape": "block",
"cursor_blink": false,
"scrollbar": { "show": "never" },
"scroll_beyond_last_line": "off",
"vertical_scroll_margin": 0,
"preferred_line_length": 100,
"soft_wrap": "none",
"relative_line_numbers": true,
"hour_format": "hour24",
"indent_guides": {
"enabled": true
},
// Font Settings
"buffer_font_family": "JetBrainsMono NF",
"ui_font_family": "JetBrainsMono NF",
"ui_font_size": 15,
"buffer_font_size": 14,
// UI Components Configuration
"tab_bar": {
"show": true,
"show_nav_history_buttons": false,
"show_tab_bar_buttons": false
},
"toolbar": {
"breadcrumbs": false,
"selections_menu": false,
"quick_actions": false
},
"tabs": {
"close_position": "right",
"file_icons": true,
"git_status": false,
"activate_on_close": "history",
"always_show_close_button": false
},
// Project and File Settings
"project_panel": {
"entry_spacing": "standard"
},
"file_finder": {
"modal_max_width": "large"
},
"file_types": {
"Dockerfile": ["Dockerfile", "Dockerfile.*"],
"JSON": ["json", "jsonc", "*.code-snippets"]
},
// Git Integration
"git": {
"git_gutter": "tracked_files",
"inline_blame": {
"enabled": false
}
},
// Editor Features
"inlay_hints": {
"enabled": true,
"show_type_hints": true,
"show_parameter_hints": true,
"show_other_hints": true,
"show_background": false,
"edit_debounce_ms": 700,
"scroll_debounce_ms": 50
},
// Terminal Configuration
"terminal": {
"font_family": "JetBrainsMono NF",
"font_size": 14,
"button": true,
"toolbar": {
"breadcrumbs": false
}
},
// Language-Specific Settings
"languages": {
"JSON": {
"preferred_line_length": 120
},
"JSONC": {
"preferred_line_length": 120
},
"TOML": {
"tab_size": 2
},
"Rust": {
"show_inline_completions": false,
"show_completions_on_input": false
}
},
// LSP (Language Server Protocol) Settings
"lsp": {
"rust-analyzer": {
"initialization_options": {
"rustfmt": {
"extraArgs": ["+nightly"]
}
}
}
},
// Theme Configuration
"theme": {
"mode": "system",
"light": "One Light",
"dark": "Catppuccin Mocha - No Italics"
},
"experimental.theme_overrides": {
"unreachable.background": "#0C0C0C",
"drop_target.background": "#0C0C0C",
"background": "#0C0C0C",
"panel.background": "#0C0C0C",
"surface.background": "#0C0C0C",
"title_bar.background": "#0C0C0C",
"toolbar.background": "#0C0C0C",
"status_bar.background": "#0C0C0C",
"tab_bar.background": "#0C0C0C",
"tab.inactive_background": "#0C0C0C",
"elevated_surface.background": "#0C0C0C",
"ghost_element.background": "transparent",
"element.background": "transparent",
"editor.foreground": "#D1D5DC",
"text": "#D1D5DC",
"text.muted": "#778298",
"text.disabled": "#4A5565",
"text.placeholder": "#778298",
"terminal.background": "#121212",
"tab.active_background": "#121212",
"editor.background": "#121212",
"editor.gutter.background": "#121212",
"border": "#242424",
"border.focused": "#242424",
"border.selected": "#242424",
"border.variant": "#242424"
},
// Panel Layout Configuration
"outline_panel": {
"dock": "left"
},
"collaboration_panel": {
"dock": "left"
},
"notification_panel": {
"dock": "left"
},
"chat_panel": {
"dock": "left"
},
// Vim Configuration
"vim": {
"use_system_clipboard": "on_yank",
"use_multiline_find": true,
"use_smartcase_find": true
},
// Telemetry Settings
"telemetry": {
"diagnostics": false,
"metrics": false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment