NeoVim 配置
配置文件
在~/.config/nvim中创建init.lua,并将配置文件内容输入即可。NeoVim 会自动从 GitHub 上下载插件并安装运行。
注意,基于 lazy 的插件需求 NeoVim 版本大于 0.8.0。
配置文件如下:
-- ==============================
-- 基础设置
-- ==============================
vim.g.mapleader = " " -- 设置 <leader> 键为空格
vim.o.number = true -- 显示行号
vim.o.relativenumber = true -- 相对行号
vim.o.expandtab = true -- Tab 转换为空格
vim.o.tabstop = 4 -- 一个 Tab 显示为 4 空格
vim.o.shiftwidth = 4 -- 自动缩进 4 空格
vim.o.softtabstop = 4 -- 编辑时 Tab = 4 空格
vim.o.smartindent = true -- 智能缩进
vim.o.wrap = false -- 不自动换行
vim.o.ignorecase = true -- 搜索忽略大小写
vim.o.smartcase = true -- 如果有大写,则大小写敏感
vim.o.termguicolors = true -- 开启真彩色
vim.o.cursorline = true -- 高亮当前行
-- ==============================
-- 插件管理(lazy.nvim)
-- ==============================
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
-- 主题
{ "ellisonleao/gruvbox.nvim", priority = 1000, config = true },
-- 状态栏
{ "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("lualine").setup { options = { theme = "gruvbox" } }
end
},
-- 文件树
{ "nvim-tree/nvim-tree.lua", dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("nvim-tree").setup {}
vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", { desc = "切换文件树" })
end
},
-- 模糊搜索
{ "nvim-telescope/telescope.nvim", tag = "0.1.6", dependencies = { "nvim-lua/plenary.nvim" },
config = function()
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "查找文件" })
vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "搜索内容" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "切换缓冲区" })
end
},
-- 语法高亮
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup {
ensure_installed = { "lua", "python", "cpp", "bash", "markdown" },
highlight = { enable = true },
}
end
},
})
-- ==============================
-- 主题设置
-- ==============================
vim.cmd.colorscheme("gruvbox")
-- ==============================
-- 快捷键增强
-- ==============================
-- 保存 & 退出
vim.keymap.set("n", "<leader>w", ":w<CR>", { desc = "保存文件" })
vim.keymap.set("n", "<leader>q", ":q<CR>", { desc = "退出文件" })
-- 快速窗口移动
vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "左窗口" })
vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "右窗口" })
vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "下窗口" })
vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "上窗口" })
详细说明
未完待续。