NeoVim个人配置笔记

LazyVim 配置目录

shell
.
├── LICENSE
├── README.md
├── init.lua #配置入口文件
├── lazy-lock.json
├── lazyvim.json
├── lua
│   ├── config #默认生成的配置目录
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua #自定义配置可以写在这里
│   └── plugins
│       ├── colorscheme.lua #自己添加的主题插件配置
│       └── example.lua
└── stylua.toml

主题配置

新建 lua/plugins/colorscheme.lua

写入以下配置

lua
return {
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = function()
        require("catppuccin").load()
      end,
    },
  },
  {
    "catppuccin/nvim",
    lazy = true,
    name = "catppuccin",
    opts = {
      color_overrides = {
        mocha = {
          base = "#060b16",
          mantle = "#090f1d",
          crust = "#0b1625",
        },
      },
      integrations = {
        aerial = true,
        alpha = true,
        cmp = true,
        dashboard = true,
        flash = true,
        grug_far = true,
        gitsigns = true,
        headlines = true,
        illuminate = true,
        indent_blankline = { enabled = true },
        leap = true,
        lsp_trouble = true,
        mason = true,
        markdown = true,
        mini = true,
        native_lsp = {
          enabled = true,
          underlines = {
            errors = { "undercurl" },
            hints = { "undercurl" },
            warnings = { "undercurl" },
            information = { "undercurl" },
          },
        },
        navic = { enabled = true, custom_bg = "lualine" },
        neotest = true,
        neotree = true,
        noice = true,
        notify = true,
        semantic_tokens = true,
        telescope = true,
        treesitter = true,
        treesitter_context = true,
        which_key = true,
      },
    },
  },
}

其中color_overrides的配色可以自由配置代码编辑页,侧栏和分割线的背景色和颜色,其他配置请参考catppuccin主题的配置https://github.com/catppuccin/nvim

终端自动配置

解决在 windows 下,neovim 终端为 cmd 而不是 powershell 的问题

lua
-- 通过系统类型来选择nvim的终端,在linux优先选择zsh,如果没有则使用bash
if vim.fn.has("win32") == 1 then
  LazyVim.terminal.setup("pwsh")
elseif vim.fn.has("linux") then
  if vim.fn.executable("zsh") == 1 then
    LazyVim.terminal.setup("zsh")
  else
    LazyVim.terminal.setup("bash")
  end
end

Codeium AI插件

比较好用的支持行内补全的AI代码插件,新建lua/plugins/codeium文件,写入以下lua代码

其中包含了自定义热键的代码,因为tab默认是缩进会造成冲突,所以我改成了ctrl+g,当然可以改为其他热键,具体可以参考Exafunction/codeium.nvim: A native neovim extension for CodeiumCodeium官方nvim插件仓库的教程

lua
return {
  "Exafunction/codeium.vim",
  event = "BufEnter",
  config = function()
    -- 自定义codeium快捷键,不使用tab接受建议而是用Ctrl+g
    vim.g.codeium_no_map_tab = 1
    vim.keymap.set("i", "<C-g>", function()
      return vim.fn["codeium#Accept"]()
    end, { expr = true, silent = true })
  end,
}

然后重启nvim会自动安装codeium插件,随后使用命令:Codeium Auth来登录,会自动弹出浏览器,然后在浏览器复制token后粘贴到nvim的框中,回车进行登陆

自定义插件仓库源

在文件lua/config/lazy.luarequire("lazy").setup方法体中加入以下内容

lua
-- 自定义插件仓库加速源
git = {
  log = { "-10" }, -- 只显示最新10条commit
  timeout = 120, -- 当超过2分钟后杀死进程
  -- 地址模板定义
  url_format = "git@github.com:%s",
  -- url_format = "https://www.ghproxy.cn/https://github.com/%s",
},

url_format就是加速地址,可以自己寻找可用源进行替换

常见问题解法

报错rust-analyzer not found in PATH, please install it

直接前往rust-analyzer用户使用手册,根据提示安装rust-analyzer即可,我在wsl中采用本地编译进行安装


未完待续,如果有任何疑问可以在评论区提问,我会尽力回答(≧ω≦)

PowerShell开发配置指北