Neovim配置

本文介绍了作者在Win11环境下安装Neovim并采用全Lua配置的过程,重点讲述了从使用packer.nvim到转向Lazyvim的插件管理体验。作者提到Lazyvim是一个依赖lazy.nvim的预配置集合,提供了详细的文档和改造建议,使得配置工作更加轻松。文章还提及了从packer.nvim转换到lazy.nvim的注意事项,并分享了个人的keymap映射文件组织方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Neovim

由于对新奇玩意的喜好,在Vim以及NeoVim中我选择了neovim进行折腾,采用全lua配置,因为完全没有体验过vim所以也无从比较,仅将配置过程记录如下

本体安装

neovim的使用环境是win11 + WSL2 + windows terminal,一个麻烦的点在于terminal本身含有众多默认快捷键,有时候会和neovim中各种自设定快捷键冲突,配置过程中需要删掉一些

此外字体需要Nerd Fonts以支持众多的字符图标,不管之前是否安装个人建议是重装一份最新的,我一开始的旧版本存在部分图标未支持的情况。

插件管理

Lazyvim

我对于neovim的配置一开始是跟着 nshen的掘金小册 ,使用packer.nvim一步步配置的,开始的时候我对lua一窍不通(现在也没太会),这本小册对于我对neovim整体的配置逻辑的理解以及后期的自我配置真的帮助很大,非常感谢作者。

但后来查阅nshen的github仓库发现他相比写教程的时候有做很多更新,小册本身有点点过时(各个扩展更新换代太快了),正好在awesome neovim项目里看到了Lazyvim,非常感兴趣,正好配置才刚刚定型,还没有投入大量精力,所以删库跑路弃用了自己的配置然后换到了Lazyvim,但保留的一点是之后我个人添加的keymap映射也单独保存为一个文件,在插件配置中对该文件进行require进行快捷键设置。

Lazyvim(首字母大写与lazy.nvim进行区分)是一个依赖lazy.nvim 插件管理器(二者来自同一个大神)的常用插件集成版配置,相比起从0开始,对已有的配置进行改造明显更为轻松,Lazyvim提供了详细的文档进行查阅,可以在文档里看到Lazyvim全部的初始配置以及许多修改建议。

packer.nvim -> lazy.nvim

大部分插件都只包含packer和vim-plug的安装方式,但lazy给出了从packer配置到修改方法:

  • requires ➡️ dependencies
  • as ➡️ name
  • opt ➡️ lazy
  • run ➡️ build
  • lock ➡️ pin
  • disable=true ➡️ enabled = false
  • tag='*' ➡️ version="*"
  • after ℹ️ not needed for most use-cases. Use dependencies otherwise.
  • wants ℹ️ not needed for most use-cases. Use dependencies otherwise.
  • config don’t support string type, use fun(LazyPlugin) instead.
  • module is auto-loaded. No need to specify
  • keys spec is different
  • rtp can be accomplished with:

大部分仅用到requires参数
示例:
packer.nvim

use {
  'nvim-lualine/lualine.nvim',
  requires = { 'kyazdani42/nvim-web-devicons', opt = true },
  disable = false, --一般不写,仅做对比
}

require(nvim_tree).setup({
	setting_a = ...,
	setting_b = ...,
})


lazy.nvim

{
	'nvim-lualine/lualine.nvim',
	enabled = false --用于Lazyvim中禁用内置插件
	dependencies = {
	'kyazdani42/nvim-web-devicons', 
	opt = true
	},
	opts = {
		setting_a = ...,
		setting_b = ...,
	}
}

更复杂一点的使用可查看官方文档

~/.config/nvim/init.lua中添加如下语句

require("lazy").setup("plugins")

lazy.nvim就会去相应名为plugins的文件夹下依次require文件,文件需返回一个两层table,内含上面示例的插件的配置
Lazyvim中已经存在pluginsconfig文件夹,往里添加文件然后return就行

示例配置文件plugins/plugina.lua

local a = {{
	"",
	opts = {
	...
	},
	...
}}

return a

我个人的文件目录列表如下

### Neovim 配置文件示例 #### 使用 `init.vim` 进行配置 如果用户希望从传统的 VimScript 开始并逐步过渡到 Lua,则可以先使用 `init.vim` 文件作为起点。以下是基于引用中的建议[^3]的一个简单 `init.vim` 示例: ```vim " 设置运行时路径以检测语法文件等 set runtimepath^=~/.config/nvim/ set packpath+=~/.local/share/nvim/site/ " 启用树状缩进模式 filetype indent on " 加载插件管理器 (例如 vim-plug) call plug#begin('~/.local/share/nvim/plugged') Plug 'nvim-lua/plenary.nvim' Plug 'neovim/nvim-lspconfig' call plug#end() " 映射快捷键 nnoremap <silent> <leader>e :NvimTreeToggle<CR> inoremap jj <Esc> " LSP 配置 autocmd User lsp_setup call lsp#register_server({ \ 'name': 'pyright', \ 'cmd': {server_info->['pyright-lang-server', '--stdio']}, \ 'root_file_patterns': ['setup.py'], \ }) ``` 此配置展示了如何加载插件以及设置基本功能。 --- #### 使用 `init.lua` 进行配置 当用户熟悉 Lua 并准备完全切换至 Lua 配置时,可以选择编写 `init.lua` 文件。以下是一个简单的 `init.lua` 示例,结合了部分推荐资源[^2][^4]: ```lua -- 基本选项设置 vim.opt.number = true -- 显示行号 vim.opt.tabstop = 4 -- 制表符宽度设为 4 vim.opt.shiftwidth = 4 -- 自动缩进宽度设为 4 vim.opt.expandtab = true -- 将制表符替换为空格 -- 键盘映射 vim.api.nvim_set_keymap('n', '<leader>e', ':NvimTreeToggle<CR>', { noremap = true }) -- 插件管理器 (Packer) require("packer").startup(function(use) use "wbthomason/packer.nvim" use "kyazdani42/nvim-tree.lua" use "hrsh7th/cmp-nvim-lsp" use "copilot-lua/copilot.lua" -- 替代 GitHub Copilot 的轻量级实现 end) -- LSP 配置 local capabilities = require("cmp_nvim_lsp").default_capabilities() require'lspconfig'.sumneko_lua.setup { settings = { Lua = { diagnostics = { globals = {"use"} -- 解决 Packer 中的未定义变量警告 } } }, capabilities = capabilities, } ``` 上述代码片段涵盖了基础设置、键盘映射、插件管理和语言服务器协议(LSP)支持等内容。 --- #### 关于学习资源 为了更好地理解 LuaNeovim 的交互方式,可参考如下资料: - **官方文档**: 提供详细的帮助命令,如 `:help lua-heredoc`, `:help lua-vim-variables` 等。 - **模板项目**: 参考 `nvim-example-lua-plugin` 获取标准结构化项目的灵感[^1]。 - **社区指南**: 探索更多高级主题,比如通过 `learn x in y minutes` 学习 LuaNeovim 结合使用的技巧。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值