一、目标功能对齐
| VSCode 功能 | Neovim 对应 |
|---|---|
| 打开工程 | nvim . |
| 文件搜索 | Telescope |
| 全局搜索 | ripgrep |
| 跳函数定义 | LSP(clangd) |
| 查函数/变量引用 | LSP |
| 悬浮文档 | LSP |
| 代码补全 | nvim-cmp |
| 代码结构 | Tree-sitter |
核心配置项包括 Telescope、LSP、nvim-cmp 和 Tree-sitter。
二、依赖的外部工具
确保系统已安装以下工具:
sudo apt install -y clangd ripgrep fd-find
ln -s $(which fdfind) ~/.local/bin/fd
检查版本:
clangd --version
rg --version
fd --version
三、Neovim 配置目录
创建配置目录:
mkdir -p ~/.config/nvim
主要配置文件为:
~/.config/nvim/init.lua
四、最小 VSCode 风格配置
将以下内容复制到 init.lua:
---------------------------------------------------- 基础设置--------------------------------------------------
vim.g.mapleader = " "
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.mouse = "a"
vim.opt.clipboard = "unnamedplus"
vim.opt.termguicolors = true
vim.opt.signcolumn = "yes"
---------------------------------------------------- 大文件优化(非常重要)--------------------------------------------------
vim.api.nvim_create_autocmd("BufReadPre", {
callback = function()
ok, stat = (vim.loop.fs_stat, vim.fn.expand())
ok stat stat.size > **
vim.opt_local.syntax =
vim.opt_local.swapfile =
vim.opt_local.undofile =
,
})
lazypath = vim.fn.stdpath() ..
vim.loop.fs_stat(lazypath)
vim.fn.system({, , , , , lazypath,})
vim.opt.rtp:prepend(lazypath)
().setup({
{, dependencies = {},},
{,},
{, dependencies = {,},},
{, build = ,},
})
telescope = ()
vim.keymap.set(, , telescope.find_files)
vim.keymap.set(, , telescope.live_grep)
vim.keymap.set(, , telescope.buffers)
lspconfig = ()
lspconfig.clangd.setup({
cmd = {, },
})
vim.api.nvim_create_autocmd(, {
callback =
opts = { buffer = ev.buf }
vim.keymap.set(, , vim.lsp.buf.definition, opts)
vim.keymap.set(, , vim.lsp.buf.references, opts)
vim.keymap.set(, , vim.lsp.buf.implementation, opts)
vim.keymap.set(, , vim.lsp.buf.hover, opts)
,
})
cmp = ()
cmp.setup({
mapping = {
[] = cmp.mapping.confirm({ = }),
},
sources = {{ name = }},
})
().setup({
ensure_installed = {, },
highlight = { enable = },
})

