将 Neovim 变成一个高级 IDE¶
先决条件¶
如 NvChad 网站所述,您需要确保系统满足以下要求
- Neovim 0.10.0.
- Nerd Font 在您的终端模拟器中设置它。
- 确保您设置的 Nerd Font 不以 Mono 结尾
- 例如: Iosevka Nerd Font 而不是
Iosevka Nerd Font Mono
- Ripgrep 是使用 Telescope 进行 grep 搜索所必需的 (可选)。
- GCC 和 Make
执行干净安装
正如要求中所述,在新配置之上安装此新配置可能会导致无法修复的问题。建议进行干净安装。
初步操作¶
如果您之前使用过 Neovim 安装,它会创建三个用于写入文件的文件夹,分别是
~/.config/nvim
~/.local/share/nvim
~/.cache/nvim
为了执行干净的配置安装,我们需要先备份之前的配置
mkdir ~/backup_nvim
cp -r ~/.config/nvim ~/backup_nvim
cp -r ~/.local/share/nvim ~/backup_nvim
cp -r ~/.cache/nvim ~/backup_nvim
然后我们删除所有以前的配置和文件
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim
安装¶
配置结构的创建是通过使用Git从初始化存储库(starter)复制文件来实现的。此方法允许将 NvChad 配置作为 Neovim 插件安装在lazy.nvim插件管理器中。
这样,配置就可以像所有其他插件一样更新,从而简化了用户的管理。此外,这种方法使得整个用户配置独立,允许其在多台机器之间进行完全管理和分发。
要下载和初始化配置,请使用以下命令
git clone https://github.com/NvChad/starter ~/.config/nvim && nvim
该命令包含两个部分。第一部分将starter存储库的内容下载到~/.config/nvim/
(Neovim 设置的默认文件夹),而第二部分调用 nvim 可执行文件,该文件使用您刚刚下载的配置初始化编辑器。安装完插件和解析器后,您将看到以下屏幕。要关闭插件管理器,请键入 q
初始配置是最小化的,并提供了一个自定义的起点。正如编辑器首次启动时的屏幕截图所示,只有四个模块(plugins)被加载,并带有复选标记,它们是:
- base46 - 提供编辑器主题
- NvChad - 允许用户配置输入到 Neovim 的基本配置
- nvim-treesitter - 用于代码分析和高亮显示
- ui - 编辑器界面(状态栏、标签栏..)
其余模块将通过lazyloading技术在请求模块提供的功能时被激活。这提高了编辑器的整体性能,并特别提高了其启动时间。
此时,编辑器已准备好使用。以下部分将深入介绍安装过程,对于日常使用不是必需的。如果您只对使用感兴趣,可以转到 使用 NvChad 页面。
然而,仍然建议阅读 官方文档 以了解其组件和功能的介绍。
要关闭编辑器,请使用按键 : q。
引导¶
引导过程在starter存储库的 init.lua 文件中实现,并包含以下步骤
设置默认主题路径和<leader>
键,在这种情况下是 Space 键
vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
vim.g.mapleader = " "
随后安装主要的lazy.nvim插件
-- bootstrap lazy and all plugins
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
local repo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
end
vim.opt.rtp:prepend(lazypath)
local lazy_config = require "configs.lazy"
安装 NvChad 插件以及plugins
文件夹中配置的所有插件
-- load plugins
require("lazy").setup({
{
"NvChad/NvChad",
lazy = false,
branch = "v2.5",
import = "nvchad.plugins",
config = function()
require "options"
end,
},
{ import = "plugins" },
}, lazy_config)
然后应用主题到default和statusline设置
-- load theme
dofile(vim.g.base46_cache .. "defaults")
dofile(vim.g.base46_cache .. "statusline")
完成后,还会输入配置运行所需的 autocmds(Neovim 自动命令)和键盘映射
require "nvchad.autocmds"
vim.schedule(function()
require "mappings"
end)
配置结构¶
NvChad 安装的结构如下
~/.config/nvim/
├── init.lua
├── lazy-lock.json
├── LICENSE
├── lua
│ ├── chadrc.lua
│ ├── configs
│ │ ├── conform.lua
│ │ └── lazy.lua
│ ├── mappings.lua
│ ├── options.lua
│ └── plugins
│ └── init.lua
└── README.md
它由一个初始文件 init.lua 组成,该文件初始化并协调将自定义项插入到 Neovim 的配置中,该文件最初看起来与上面所示的 starter 存储库的引导所使用的文件相同,稍后将用于加载配置中的其他文件,例如其自身的autocommands.lua 文件。
接下来是 lazy-lock.json 文件,其中存储了安装中的所有插件以及它们相对于GitHub上开发的的状态。该文件允许在安装在多台机器上的安装之间同步编辑器状态,并允许自定义安装复制所需状态。
其余配置位于lua
文件夹中,并从 chadrc.lua 文件开始初始化,该文件在初始版本中仅包含编辑器主题设置。
该文件用于自定义编辑器 (UI) 的外观,并与 NvChad 插件的 nvconfig.lua 文件共享语法;要编译它,只需将nvconfig.lua文件的所需部分复制到您的chadrc.lua中并根据需要更改其属性。
配置使用的下一个文件是用于编辑器自定义的 option.lua 文件,例如缩进空格、与访客系统的剪贴板共享,以及非常重要的是,将Mason安装的二进制文件包含在路径中。
与前一个文件一样,它共享 NvChad 插件的 相应文件 的语法;要根据上述方式进行自定义,只需复制选项并进行编辑。
最后是 mapping.lua 文件,用于设置调用编辑器提供的各种功能的键盘按键。初始文件包含进入 COMMAND 模式的键映射、用于conform.nvim的格式化以及用于退出 INSERT 模式的键。
按键使用 Neovim 的原生vim.keymap.set
语法,其配置可以参考 NvChad 的 默认映射 或 Neovim 中的帮助页面:h vim.keymap.set
。
require "nvchad.mappings"
-- add yours here
local map = vim.keymap.set
map("n", ";", ":", { desc = "CMD enter command mode" })
map("n", "<leader>fm", function()
require("conform").format()
end, { desc = "File Format with conform" })
map("i", "jk", "<ESC>", { desc = "Escape insert mode" })
配置中包含的两个文件夹configs
和plugins
都用于管理插件;个人插件应放在plugins
文件夹中,其附加配置(如果有)则放在configs
文件夹中。
最初,将提供一个plugins/init.lua文件,其中在configs/conform.lua中配置了conform.lua插件,并在其中配置了nvimtree.nvim以及用于Git相关装饰的选项。
插件组织
插件的包含是通过插入plugins
文件夹中存在的任何已正确配置的文件来完成的,这允许按目的等方式组织插件,通过在此创建单独的文件(utils.lua、editor.lua、markdown.lua等),可以以更 orderly 的方式处理配置。
还有用于许可的文件以及一个从 starter 存储库复制的README.md,如果配置维护在Git存储库中,则可以使用它来说明您的配置。
主键盘按键¶
这是返回基本命令映射的调用
vim.schedule(function()
require "mappings"
end)
这设置了四个主键,通过这些主键并结合其他按键,可以启动命令。主键是
- C = Ctrl
- Leader = 空格键
- A = Alt
- S = Shift
注意
在这些文档中,我们将多次引用这些键映射。
默认映射包含在 NvChad 插件的lua/mapping.lua中,但可以使用其自身的mappings.lua通过其他自定义命令进行扩展。
<leader>th
更改主题 Space + t + h
<C-n>
打开 nvimtree Ctrl + n
<A-i>
在浮动标签页中打开终端 Alt + i
我们为您预设了许多组合,它们涵盖了 NvChad 的所有用法。在开始使用您已配置 NvChad 的 Neovim 实例之前,值得花时间分析一下键映射。
作者:Franco Colussi
贡献者:Steven Spencer, Ganna Zhyrnova