发布时间

LazyVim 插件

Blink 指的是 blink.cmp 插件,它是 Neovim 的补全插件。它轻量且速度很快,支持 LSP 和 snippets。对于想使用轻量补全插件的人来说,这是一个不错的选择。

在 LazyVim 中,Blink 是默认补全插件。你无需额外配置就可以直接使用。blink.cmp 的默认配置如下:

opts = {
  snippets = {
    expand = function(snippet, _)
      return LazyVim.cmp.expand(snippet)
    end,
  },
  appearance = {
    -- sets the fallback highlight groups to nvim-cmp's highlight groups
    -- useful for when your theme doesn't support blink.cmp
    -- will be removed in a future release, assuming themes add support
    use_nvim_cmp_as_default = false,
    -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
    -- adjusts spacing to ensure icons are aligned
    nerd_font_variant = "mono",
  },
  completion = {
    accept = {
      -- experimental auto-brackets support
      auto_brackets = {
        enabled = true,
      },
    },
    menu = {
      draw = {
        treesitter = { "lsp" },
      },
    },
    documentation = {
      auto_show = true,
      auto_show_delay_ms = 200,
    },
    ghost_text = {
      enabled = vim.g.ai_cmp,
    },
  },

  -- experimental signature help support
  -- signature = { enabled = true },

  sources = {
    -- adding any nvim-cmp sources here will enable them
    -- with blink.compat
    compat = {},
    default = { "lsp", "path", "snippets", "buffer" },
    cmdline = {},
  },

  keymap = {
    preset = "enter",
    ["<C-y>"] = { "select_and_accept" },
  },
}

基于这些插件,我们可以完成 snippets、LSP、path、buffer 和 cmdline 的补全。 而键位映射也可以按照自己的使用习惯来配置。

Colorscheme

我们认为 tokeynight-night 是 Neovim 中更好看的配色主题,因此把它作为默认 colorscheme。配置如下:

{
  "LazyVim/LazyVim",
    opts = {
      colorscheme = "tokyonight-night",
    },
}

Editor fzf

编辑器核心基于 fzf-lua,可以对文件、buffer、git 文件等进行模糊搜索。它是一个非常强大的模糊搜索插件,可用于查找文件、buffer、git 文件等。

  • 使用 <space><space> 搜索文件。
  • 使用 <space>sw 搜索上下文。
  • 等等。

neo-tree

neo-tree 是 Neovim 的资源管理器插件。它可以用来浏览文件和目录,对于希望使用文件浏览器插件的人来说是个不错的选择。 它支持浏览 buffer、gitstatus 和 floder。

  • <leader>e 用于打开 floder。
  • <leader>ge 用于查看 gitstatus。
  • <leader>be 用于查看 buffer。

which-key

which-key 是一个会在弹窗中显示当前模式按键绑定的插件。对于想查看当前模式键位的人来说,它是个不错的选择。

  • 使用 <leader>sk 显示按键绑定。
  • 在这个 link 中可以看到默认的按键分组类别,例如 z flod、gs surround。
  • 使用 <leader>? 查看哪些按键可以使用。

Formatter & Linting

Lazyvim 使用 conform.nvim 来格式化代码。对于想使用代码格式化工具的人来说,这是个不错的选择。 我们可以通过 <leader>cm 使用 mason.nvim 添加新的文件类型格式化器。 Linting 也同样由 mason.nvim 管理。

LSP language server protocol

nvim-lspconfig 是 lazyvim 默认的 LSP 插件。 它依赖 mason.nvimmason-lspconfig.nvim

Treesitter

nvim-treesitter 是一个新的解析器生成工具,我们可以在 Neovim 中使用它来支持语法高亮以及其他语言处理任务。

  • 使用 <C-Space>BS 来增加或减少选择范围。
  • 使用 [] 再配合 f c a 在 treesitter 节点间导航。

UI

  • bufferline - 在编辑器窗口顶部 以标签页形式显示已打开的 buffers。
  • lualine - 一个可自定义的状态栏, 显示在编辑器底部。
  • noice.nvim - 一个现代通知系统, 可用于调试和自定义通知。

Utils

  • persistence 提供会话管理, 可以快速恢复之前的工作会话。