Skip to content
On this page

快捷键映射(Mappings)

概览

用于映射快捷键的nvim按键名字对应关系:

  • <C> -> Ctrl
  • <leader> -> Space,即空格
  • <A> -> alt
  • <S> -> shift
  • 默认的映射关系定义在 core.mappings (`core/mappings.lua).
  • 当然,你也可以使用NvCheatsheet或者Telescope keymaps来列出所有映射。

Mapping格式

为了能够在NvCheatsheet中列出所有自定义的快捷键,请确保使用下面的格式:

lua
-- opts 是可选参数
["keys"] = {"action", "description", opts = {}},

["<C-n>"] = {"<cmd> NvimTreeToggle <CR>", "Toggle nvimtree"},
["<leader>ff"] = {"<cmd> Telescope <CR>", "Telescope"},   

-- opts 可以有以下属性: buffer, silent, noremap, nowait等。
-- 支持所有标准的案件绑定opts。 
[";"] = { ":", "enter cmdline", opts = { nowait = true } },

-- 更多复杂的按键绑定
["<leader>tt"] = {
  function()
     require("base46").toggle_transparency()
  end,
  "toggle transparency",
},

添加新的绑定(mappings)

  • 为了添加自定义的快捷键映射,请确保遵循NvChad的目录结构。

  • 默认的快捷键绑定从 core.mappings 加载,建议您将自定义的快捷键映射保存在 custom.mappings 文件中。

  • 请记住,映射 必须 声明vim模式: n (normal正常模式), v (visual模式), i (insert插入模式) 等。

  • custom/chadrc.lua

lua
M.mappings = require "custom.mappings"

  • custom/mappings.lua
lua
local M = {}

-- 禁用默认的快捷键绑定可以使用:
M.disabled = {
  n = {
      ["<leader>h"] = "",
      ["<C-a>"] = ""
  }
}

-- 自定义的快捷键绑定
M.abc = {
  n = {
     ["<C-n>"] = {"<cmd> Telescope <CR>", "Telescope"}
     ["<C-s>"] = {":Telescope Files <CR>", "Telescope Files"} 
  }

  i = {
     ["jk"] = { "<ESC>", "escape insert mode" , opts = { nowait = true }},
    -- ...
  }
}

return M

自定义的快捷键映射会自动加载,您不需要手动加载它们。

手动加载映射

即使不是必需的,但是您还是可以手动加载映射。

lua
M.some_plugin_name = {
  plugin = true, -- 重要

  n = {
     ["<C-n>"] = {"<cmd> Telescope <CR>", "Telescope"}
  }
}

-- 现在来加载它
require("core.utils").load_mappings("someplugin")

Powered by VitePress