用 lua 编写的最小 Neovim 配置
目录
Neovim 是 Vim 的一个非常酷的继承者,专注于兼容性,同时添加异步插件功能并尝试清理代码库。在多次厌倦了 Sublime Text(2 和 3)和 Atom 后,在意识到我通过 SSH 进行了多少开发之后,使用 vim(或 nvim,在本例中)作为我的 IDE 似乎是合理的。优点主要归结为:
因此,我决定创建这个存储库。有多个版本,请查看 CHANGELOG。
此配置只是一个起点,它只适合我的需要。如果您想定制,请跳至6.定制。
mv ~ /.config/nvim ~ /.config/nvim.bak
操作系统 | 小路 |
---|---|
Linux、苹果系统 | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
Windows(命令) | %localappdata%nvim |
Windows(电源外壳) | $env:LOCALAPPDATAnvim |
注意您的 fork 的 url 将类似于:
https://github.com/<your_github_username>/neovim-config.git
注意如果遵循上述推荐步骤(即分叉存储库),请在以下命令中将
ntk148v
替换为<your_github_username>
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
如果您使用的是cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
如果您使用的是powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
保持更新。 config 下的文件将在适当的时候自动加载,因此您无需手动请求这些文件。
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
插件 | 描述 |
---|---|
懒惰的nvim | Neovim 的现代插件管理器 |
梅森.nvim | 适用于 Neovim 的便携式包管理器,可在 Neovim 运行的任何地方运行。轻松安装和管理 LSP 服务器、DAP 服务器、linter 和格式化程序。 |
nvim-lspconfig | Neovim内置语言服务器客户端常用配置合集 |
gitsigns | 超快的 git 装饰纯粹用 lua/teal 实现 |
nvim 树管理员 | Nvim Treesitter 配置和抽象层 |
nvim-cmp | 自动完成插件 |
卢阿剪辑 | 用 Lua 编写的 Neovim 片段引擎 |
nvim-tree.lua - | 用Lua编写的文件浏览器 |
nvim 自动配对 | Neovim 的超强大自动配对 |
nvim-web-devicons | neovim 的 vim-web-devicons 的 Lua fork |
lualine.nvim | 一个用纯 lua 编写的速度极快且易于配置的 neovim statusline 插件。 |
norcalli/nvim-colorizer.lua | 最快的 Neovim 着色器。 |
nvim-望远镜/telescope.nvim | 查找、过滤、预览、挑选。所有的lua,所有的时间。 |
玫瑰松木 | Neovim 的 Soho 氛围 |
nvimtools/none-ls.nvim | null-ls.nvim 重新加载 / 使用 Neovim 作为语言服务器通过 Lua 注入 LSP 诊断、代码操作等。 |
福克/which-key.nvim | 创建持久的按键绑定。 WhichKey 通过在您键入时在弹出窗口中显示可用的键绑定来帮助您记住 Neovim 键盘映射。 |
默认情况下,安装并配置以下 LSP 服务器:
此外,它与 nvim-treesitter 集成,提供丰富的语法突出显示和其他语言解析魔法。
如果您的语言不受支持,请按照以下步骤操作:
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
您可以通过编辑自定义文件来添加更多 LSP 服务器和语言语法突出显示。
这些是默认的键盘映射,在以下快捷键中, <leader>
+` 键设置为``(空格)字符,检查:keymaps.lua。
捷径 | 模式 | 描述 |
---|---|---|
kk | 插入 | 按kk 退出 |
<leader> + r | 普通的 | 重新加载配置文件 |
<leader> + s | 普通的 | 保存文件 |
<leader> + q | 普通的 | 保存(关闭所有窗口)并退出 Neovim |
<leader> + n | 普通的 | 打开 NvimTree |
<leader> +号码 | 普通的 | 刷新 NvimTree |
<leader> + nf | 普通的 | 在 NvimTree 中查找文件 |
<leader> + ff | 普通的 | 打开望远镜查找文件 |
<leader> + fg | 普通的 | 打开 Telescope 进行实时 grep |
<leader> + FB | 普通的 | 打开 Telescope 列出缓冲区 |
<leader> + fh | 普通的 | 打开望远镜显示帮助 |
<leader> + fo | 普通的 | 打开 Telescope 显示最近打开的文件 |
<leader> +厘米 | 普通的 | 打开 Telescope 列出 git 提交 |
<leader> + wh/j/k/l | 普通的 | 围绕分割移动 |
毫米 | 普通的 | 注释/取消注释行 |
默认的键盘映射有很多,你可以使用:map
命令查看。还有其他变体:
:nmap
用于正常模式映射:vmap
用于视觉模式映射:imap
用于插入模式映射上面的列表并不完整。在 Vim 中输入:help map
将为您提供更多信息。
您可以通过创建custom
模块来自定义此配置。您可以选择以下两种方式之一:
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
文件。${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
查看示例自定义文件作为起点。逻辑取自 CyberNvim。配置中有许多定义的部分:
M.setup_sources
用于添加额外的源以连接到 Null-ls - 您可以在此处找到源列表。参数 b 只是 null_ls.builtins 的缩写。M.ensure_installed
用于添加额外的 Treesitter 荧光笔。M.plugins
是您添加自己的插件定义的地方。M.configs
是您自己的配置中最重要的部分。您可以在此处定义任何自动命令、需要任何文件或以其他方式完全移植当前配置。M.formatting_servers
用于设置自动格式化规则。您需要选择将提供自动格式化功能的语言服务器请随意提出问题或提出拉取请求。不客气!