Skip to content

默认配置文件

所有的给予 VSCode 的键位映射统一由默认配置文件来维护,其他配置文件继承他。一些公共的插件和设置也通过将设置|插件应用于所有配置文件来实现共享。

JSON
// DEFAULT
{
  "settingsSync.keybindingsPerPlatform": false, // 跨平台同步 keybindings.json
  // 全部配置文件共享设置
  "workbench.settings.applyToAllProfiles": [
    "editor.fontSize",
    "extensions.experimental.affinity",
    "editor.formatOnSave",
    "extensions.ignoreRecommendations",
    "path-intellisense.absolutePathToWorkspace",
    "path-intellisense.autoSlashAfterDirectory",
    "remote.extensionKind",
    "vim.leader",
    "vim.easymotion",
    "vim.sneak",
    "vim.sneakUseIgnorecaseAndSmartcase",
    "vim.useCtrlKeys",
    "vim.foldfix",
    "vim.useSystemClipboard",
    "vim.normalModeKeyBindingsNonRecursive",
    "editor.defaultFormatter"
  ],
  // ==================== 基础设置 ==============================
  "editor.fontSize": 16, // 字体大小
  "editor.defaultFormatter": "esbenp.prettier-vscode", // 默认格式化工具
  "extensions.ignoreRecommendations": true, // 不在显示建议
  "editor.formatOnSave": true, // 保存时自动格式化
  // ==================== 插件设置 ==============================
  // === Path Intellisense
  "path-intellisense.absolutePathToWorkspace": false, // 默认绝对路径基于工作区感知,false 表示绝对路径基于磁盘根目录解析
  "path-intellisense.autoSlashAfterDirectory": true, // 导航到文件夹时自动添加斜杠
  // === Project Manager
  "remote.extensionKind": {
    "alefragnani.project-manager": [
      // 远程保存项目
      "workspace"
    ]
  },
  // ==================== vim ==============================
  "vim.leader": " ", // Leader 设置为空格
  "vim.easymotion": true, // 开启 easymotion 插件 <leader>jw{char} <leader>jl
  "vim.sneak": true, // 开启 sneak 插件 s{char}{char}
  "vim.sneakUseIgnorecaseAndSmartcase": true,
  "vim.useCtrlKeys": false, // 禁用 vim 的 ctrl 按键,允许 Ctrl+s 之类键位可用
  "vim.foldfix": true, // 允许 jk 跳过折叠
  "vim.useSystemClipboard": true, // 使用系统剪切板
  // Normal 下按键绑定
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": [":"],
      "commands": ["workbench.action.showCommands"],
      "silent": true
    },
    // ============== 窗口管理 ============================
    // 聚焦到 1-5 编辑器组
    {
      "before": ["<leader>", "1"],
      "commands": ["workbench.action.focusFirstEditorGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "2"],
      "commands": ["workbench.action.focusSecondEditorGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "3"],
      "commands": ["workbench.action.focusThirdEditorGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "4"],
      "commands": ["workbench.action.focusFourthEditorGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "5"],
      "commands": ["workbench.action.focusFifthEditorGroup"],
      "silent": true
    },
    // 关闭编辑器组以及其中的编辑组
    {
      "before": ["<leader>", "w", "d"],
      "commands": ["workbench.action.closeEditorsAndGroup"],
      "silent": true
    },
    // 最大化组
    {
      "before": ["<leader>", "w", "c"],
      "commands": ["workbench.action.maximizeEditor"],
      "silent": true
    },
    // 关闭其他编辑器
    {
      "before": ["<leader>", "w", "o"],
      "commands": ["workbench.action.closeEditorsInOtherGroups"],
      "silent": true
    },
    // 聚焦下上右左编辑器组
    {
      "before": ["<leader>", "w", "j"],
      "commands": ["workbench.action.focusBelowGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "w", "k"],
      "commands": ["workbench.action.focusAboveGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "w", "h"],
      "commands": ["workbench.action.focusLeftGroup"],
      "silent": true
    },
    {
      "before": ["<leader>", "w", "l"],
      "commands": ["workbench.action.focusRightGroup"],
      "silent": true
    },
    // 垂直水平分隔编辑器
    {
      "before": ["<leader>", "w", "v"],
      "commands": ["workbench.action.splitEditorRight"],
      "silent": true
    },
    {
      "before": ["<leader>", "w", "s"],
      "commands": ["workbench.action.splitEditorDown"],
      "silent": true
    },
    //================== Buffer ===========================
    // vscode 以编辑器呈现 Buffer
    // 所有组中关闭编辑器,默认关闭 buffer
    {
      "before": ["<leader>", "b", "d"],
      "commands": ["workbench.action.closeEditorInAllGroups"],
      "silent": true
    },
    // 打开组中下一个编辑器
    {
      "before": ["<leader>", "b", "l"],
      "commands": ["workbench.action.openNextRecentlyUsedEditorInGroup"],
      "silent": true
    },
    // 打开组中上一个编辑器
    {
      "before": ["<leader>", "b", "h"],
      "commands": ["workbench.action.openPreviousRecentlyUsedEditorInGroup"],
      "silent": true
    },
    // 切换只读,选项卡处加锁
    {
      "before": ["<leader>", "b", "r"],
      "commands": [
        "workbench.action.files.toggleActiveEditorReadonlyInSession"
      ],
      "silent": true
    },
    // ============== File ===========================
    // 保存文件
    {
      "before": ["<leader>", "b", "w"],
      "commands": ["workbench.action.files.save"],
      "silent": true
    },
    {
      "before": ["<leader>", "e"],
      "commands": ["workbench.files.action.focusFilesExplorer"],
      "silent": true
    },
    // ============== easymotion =======================
    {
      "before": ["<leader>", "j", "w"],
      "after": ["<leader>", "<leader>", "s"]
    },
    {
      "before": ["<leader>", "j", "l"],
      "after": ["<leader>", "<leader>", "<leader>", "b", "d", "j", "k"]
    }
  ],
  // ==================== 不同步设置 ==============================
  "settingsSync.ignoredSettings": [
    // 不同步的设置
  ],
  "settingsSync.ignoredExtensions": [
    // 不同步插件
  ]
}