Zed 是一个现代化的编辑器, 使用它只是为了提高效率.

安装

直接在官网看如何安装即可, 根据不同的系统不同方式.

配置

安装后, 只需要对日常使用进行配置, 它里面的许多快捷键都和 VS Code 类似.

如下是一个目前使用的基础配置:

json
{
  "features": {
    "edit_prediction_provider": "zed"
  },
  "active_pane_modifiers": {
    "inactive_opacity": 0.4
  },
  "restore_on_startup": "none",
  "autosave": "on_window_change",
  "vim_mode": true,
  "buffer_font_size": 24,
  "buffer_font_family": "FiraCode Nerd Font Mono",
  "preferred_line_length": 120,
  "soft_wrap": "preferred_line_length",
  "show_wrap_guides": true, //展示行宽竖线
  "ui_font_family": "FiraCode Nerd Font Mono",
  "ui_font_size": 24,
  "edit_predictions_disabled_in": ["comment", "string"],
  // vim 的相对行号
  "vim": { "toggle_relative_line_numbers": true },
  "theme": {
    "mode": "system",
    "light": "One Light",
    "dark": "One Dark"
  },
  "tabs": {
    "file_icons": true,
    "close_position": "left",
    "show_close_button": "always"
  },
  "file_finder": {
    "modal_max_width": "medium"
  },
  // languages 和 lsp 配置
  "languages": {
    "TypeScript": {
      "prettier": {
        "allowed": false
      }
    },
    "Rust": {
      "formatter": "language_server",
      "format_on_save": "on"
    },
    "Markdown": { "format_on_save": "off" }
  },
  "inlay_hints": {
    "enabled": false
  },
  "lsp": {
    "rust-analyzer": {
      "initialization-options": {
        "check": {
          "command": "clippy"
        },
        "checkOnSave": {
          "command": "clippy"
        }
      }
    }
  }
  // "assistant": { "enabled": false, "version": "2" }
}

除通用环境配置外, 还支持针对不同语言进行.

键位绑定

目前自定义的一些键位, 和 Vscode 习惯匹配:

json
[
  {
    "context": "Workspace",
    "bindings": {
      "shift shift": "file_finder::Toggle",
      "cmd-e": "projects::OpenRecent",
      "cmd-p": "buffer_search::FocusEditor",
      "cmd-[": "pane::GoBack",
      "cmd-]": "pane::GoForward",
      "cmd-1": "workspace::ToggleLeftDock",
      "cmd-shift-n": "workspace::NewWindow"
    }
  },
  {
    "context": "Editor",
    "bindings": {
      "cmd-w": "pane::CloseActiveItem",
      "shift shift": "file_finder::Toggle",
      "cmd-c": "editor::Copy",
      "cmd-v": "editor::Paste",
      "cmd-x": "editor::Cut",
      "cmd-[": "pane::GoBack",
      "cmd-]": "pane::GoForward",
      "cmd-shift-t": "workspace::NewCenterTerminal"
    }
  },
  {
    "context": "Terminal",
    "bindings": {
      // "cmd-c": ["terminal::SendKeystroke", "cmd-c"]
    }
  },
  {
    "context": "vim_mode",
    "bindings": {
      "cmd-e": "projects::OpenRecent",
      "cmd-a": "editor::SelectAll",
      "cmd-c": "editor::Copy",
      "cmd-v": "editor::Paste",
      "cmd-[": "pane::GoBack",
      "cmd-]": "pane::GoForward"
    }
  }
]

vim 相关

vim 中有许多拥有的命令, 详见: https://zed.dev/docs/vim