{ ... }:
{
programs.zed-editor = {
enable = true;
installRemoteServer = true;
userSettings = {
base_keymap = "Emacs";
vim_mode = true;
tab_size = 2;
tab_bar = {
show = true;
show_nav_history_buttons = false;
show_tab_bar_buttons = false;
};
toolbar = {
breadcrumbs = false;
quick_actions = false;
selections_menu = false;
};
cursor_blink = false;
current_line_highlight = "gutter";
indent_guides.enabled = false;
git = {
git_gutter = "hide";
inline_blame.enabled = false;
};
gutter = {
runnables = false;
breakpoints = false;
folds = false;
};
pane_split_direction_vertical = "right";
use_smartcase_search = true;
seed_search_query_from_cursor = "always";
inlay_hints = {
enabled = true;
show_type_hints = true;
show_parameter_hints = false;
};
file_types = {
"Shell Script" = [ "envrc" ];
};
project_panel = {
entry_spacing = "standard";
file_icons = false;
folder_icons = false;
indent_size = 16;
};
preview_tabs.enabled = false;
collaboration_panel.button = false;
vim = {
toggle_relative_line_numbers = true;
};
};
userKeymaps = [
{
context = "VimControl && !menu";
bindings = {
"alt-x" = "command_palette::Toggle";
"," = null;
", f f" = "file_finder::Toggle";
", b b" = "file_finder::Toggle";
", f s" = "workspace::Save";
", p" = "projects::OpenRecent";
", r" = "editor::Rename";
", w d" = "editor::GoToDefinitionSplit";
", w g d" = "editor::GoToDefinitionSplit";
", w shift-d" = "editor::GoToTypeDefinitionSplit";
", w g shift-d" = "editor::GoToTypeDefinitionSplit";
", w space" = "editor::OpenExcerptsSplit";
", w g space" = "editor::OpenExcerptsSplit";
", b x" = "pane::CloseActiveItem";
", q" = "pane::CloseActiveItem";
};
}
{
context = "ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView";
bindings = {
", w" = null;
", w left" = "workspace::ActivatePaneLeft";
", w right" = "workspace::ActivatePaneRight";
", w up" = "workspace::ActivatePaneUp";
", w down" = "workspace::ActivatePaneDown";
", w h" = "workspace::ActivatePaneLeft";
", w l" = "workspace::ActivatePaneRight";
", w k" = "workspace::ActivatePaneUp";
", w j" = "workspace::ActivatePaneDown";
", w ctrl-h" = "workspace::ActivatePaneLeft";
", w ctrl-l" = "workspace::ActivatePaneRight";
", w ctrl-k" = "workspace::ActivatePaneUp";
", w ctrl-j" = "workspace::ActivatePaneDown";
", w shift-left" = "workspace::SwapPaneLeft";
", w shift-right" = "workspace::SwapPaneRight";
", w shift-up" = "workspace::SwapPaneUp";
", w shift-down" = "workspace::SwapPaneDown";
", w shift-h" = "workspace::SwapPaneLeft";
", w shift-l" = "workspace::SwapPaneRight";
", w shift-k" = "workspace::SwapPaneUp";
", w shift-j" = "workspace::SwapPaneDown";
", w 1" = [
"workspace::ActivatePane"
0
];
", w 2" = [
"workspace::ActivatePane"
1
];
", w 3" = [
"workspace::ActivatePane"
2
];
", w 4" = [
"workspace::ActivatePane"
3
];
", w 5" = [
"workspace::ActivatePane"
4
];
", w 6" = [
"workspace::ActivatePane"
5
];
", w 7" = [
"workspace::ActivatePane"
6
];
", w 8" = [
"workspace::ActivatePane"
7
];
", w 9" = [
"workspace::ActivatePane"
8
];
", w >" = "vim::ResizePaneRight";
", w <" = "vim::ResizePaneLeft";
", w -" = "vim::ResizePaneDown";
", w +" = "vim::ResizePaneUp";
", w _" = "vim::MaximizePane";
", w =" = "vim::ResetPaneSizes";
", w g t" = "pane::ActivateNextItem";
", w ctrl-g t" = "pane::ActivateNextItem";
", w g shift-t" = "pane::ActivatePreviousItem";
", w ctrl-g shift-t" = "pane::ActivatePreviousItem";
", w w" = "workspace::ActivateNextPane";
", w p" = "workspace::ActivatePreviousPane";
", w ctrl-p" = "workspace::ActivatePreviousPane";
", w shift-w" = "workspace::ActivatePreviousPane";
", w v" = "pane::SplitVertical";
", w ctrl-v" = "pane::SplitVertical";
", w s" = "pane::SplitHorizontal";
", w shift-s" = "pane::SplitHorizontal";
", w ctrl-s" = "pane::SplitHorizontal";
", w c" = "pane::CloseAllItems";
", w ctrl-c" = "pane::CloseAllItems";
", w q" = "pane::CloseAllItems";
", w ctrl-q" = "pane::CloseAllItems";
", w o" = "workspace::CloseInactiveTabsAndPanes";
", w ctrl-o" = "workspace::CloseInactiveTabsAndPanes";
", w n" = "workspace::NewFileSplitHorizontal";
", w ctrl-n" = "workspace::NewFileSplitHorizontal";
};
}
];
};
}
user/settings/zed.nix (view raw)