1749 字
9 分钟
类 vi 编辑器
关系
vi一般是Linux自带的,带有可以在命令行中运行vim在vi的基础上,可在命令行中运行,在vi的基础上更加美观neovim在vim的基础上,拥有界面,更加美观花里胡哨,可媲美 VScode
基本的语法(键位)
| 命令 | 用途 |
|---|---|
:w | 保存 |
:q | 退出 |
! 如:q!就是强制退出,不保存 | 强制 |
d 若不使用p粘贴就是删除 | 剪切/删除 |
y | 复制 |
p | 粘贴 |
i | 进入批注模式 |
v | 进入复制模式 |
esc | 返回正常模式 |
gf | 进入 |
s,写法::s {被替换的字符}/{需要替换的字符}支持正则表达式 | 替换 |
vim
- Vim官网:网站
NeoVim
- NeoVim官网:网站编辑器
安装 LazyVim框架
- LazyVim 是目前最受欢迎的 Neovim 配置框架(基于 lazy.nvim),开箱即有 IDE 级功能,启动极快
- 官网:网站
- Github 开源地址:网站
- 学习资源
:help+:Lazy+:Mason是最好的老师。- YouTube 搜索 “LazyVim 2026” 或 “Neovim note taking” 有很多最新视频。
- 中文社区:Reddit r/neovim、B站搜索 “Neovim 配置”。
安装步骤:
备份旧配置(重要!)
- 备份原有 Neovim 配置
mv ~/.config/nvim ~/.config/nvim.bakmv ~/.local/share/nvim ~/.local/share/nvim.bak
- 可选但推荐
mv ~/.local/state/nvim ~/.local/state/nvim.bakmv ~/.cache/nvim ~/.cache/nvim.bak
克隆 LazyVim 启动模板
- 终端输入:
git clone https://github.com/LazyVim/starter ~/.config/nvim
安装后的目录结构
~/.config/nvim/中
├── lua/│ ├── config/│ │ ├── autocmds.lua # 自动命令│ │ ├── keymaps.lua # 快捷键设置│ │ ├── lazy.lua # 懒加载配置│ │ └── options.lua # 编辑器选项│ └── plugins/ # 自定义插件目录│ └── example.lua└── init.lua # 入口文件移除 .git 文件夹
- 终端输入:
rm -rf ~/.config/nvim/.git- 方便托管自己的配置到个人仓库中
启动 Neovim
- 终端输入:
nvim - 首次启动时,LazyVim 会自动下载并安装所有默认插件,请耐心等待 2-5 分钟到结束。
- 如果有插件安装错误:见 [[类 vi 编辑器(以 NeoVim 为例)#插件安装失败]]
安装插件(使用LazyVim框架 )
- 在
~/.config/nvim/lua/plugins/目录下新建.lua文件:
推荐额外插件
return { -- 笔记渲染 { "MeanderingProgrammer/render-markdown.nvim", opts = {} },
-- Obsidian 支持return { { "epwalsh/obsidian.nvim", version = "*", -- 稳定版 lazy = true, event = { "BufReadPre " .. vim.fn.expand("~/文档/笔记/gtlx-md") .. "/**/*.md", "BufNewFile " .. vim.fn.expand("~/文档/笔记/gtlx-md") .. "/**/*.md", }, dependencies = { "nvim-lua/plenary.nvim" }, opts = { workspaces = { { name = "notes", path = "~/文档/笔记/gtlx-md", }, },
completion = { nvim_cmp = false, -- ← 关键修改!因为你用的是 blink.cmp min_chars = 2, },
mappings = { ["gf"] = { action = function() return require("obsidian").util.gf_passthrough() end, opts = { noremap = false, expr = true, buffer = true }, }, ["<CR>"] = { action = function() return require("obsidian").util.smart_action() end, opts = { buffer = true, expr = true }, }, },
daily_notes = { folder = "Daily", }, }, },}
-- 其他好用的 "tpope/vim-fugitive", -- Git 命令 "folke/trouble.nvim", -- 诊断列表 "nvim-neotest/neotest", -- 测试运行器}编程插件:
从 VSCode 转过来建议:先用 LazyVim 跑 1-2 周熟悉基本操作,再逐步自定义。初期可能觉得慢,但掌握 Vim 键位(hjkl、w b 等)和插件后,效率会大幅提升。
nvim-treesitter/nvim-treesitter-textobjects:更强的代码块操作。mfussenegger/nvim-dap+ 对应语言适配器。lewis6991/gitsigns.nvim。- AI 插件:
yetone/avante.nvim或github/copilot.vim等。
其他笔记插件:
nvim-neorg/neorg:类似 Org-mode 的结构化笔记(适合重度组织者)。zk.nvim或telekasten.nvim:Zettelkasten 方法。image.nvim:终端内显示图片(需 kitty/wezterm 等终端)。
做笔记(Markdown / Zettelkasten / Obsidian 风格)
Neovim 在纯文本笔记上非常强大,尤其适合程序员。
推荐方案:
-
最简单强大:LazyVim 的 Markdown Extra + Marksman LSP
:LazyExtras启用lang.markdown。- 安装 Marksman(Markdown LSP):提供链接补全、跳转、查找引用、重命名等,完美支持 Wiki 链接
[[Note]]。 - 插件:
render-markdown.nvim(漂亮的 Markdown 渲染)、markdown-preview.nvim(浏览器预览)、vim-markdown或 Treesitter。
-
Obsidian 用户:obsidian.nvim
- 插件:
epwalsh/obsidian.nvim。 - 支持每日笔记(
:ObsidianToday)、模板、图片粘贴、快速切换、链接管理等。 - 可以和 Obsidian App 共用 vault(手机端用 App,电脑端用 nvim)。
- 插件:
实用配置示例(Markdown 文件类型设置):
在 ~/.config/nvim/ftplugin/markdown.lua 中:
vim.opt.wrap = truevim.opt.linebreak = truevim.opt.conceallevel = 2 -- 隐藏 Markdown 标记,阅读更舒服使用
- 安装完后,用
:LazyExtras命令启用需要的扩展(非常方便)。 - LazyVim 默认已包含很多插件:(可以部分替代 VSCode 的核心功能)
- LSP、补全、格式化、Lint:
mason.nvim+nvim-lspconfig+blink.cmp(或 nvim-cmp)+conform.nvim等。 - Treesitter:优秀语法高亮和代码结构。
- Telescope / fzf-lua:模糊查找文件、符号、grep(比 VSCode 的 Command Palette 还强)。
- 调试:
nvim-dap(支持多种语言)。 - Git:
gitsigns、lazygit、neogit。
- LSP、补全、格式化、Lint:
启用语言支持:
- 在
~/.config/nvim/lua/plugins/下新建文件: - Python、Rust、Go、TypeScript、Java 等:
- 用
:LazyExtras搜索对应lang.*启用。
- 用
- 示例启用 Python 和 Markdown:
- 在
lua/config/lazy.lua或 plugins 文件中添加:
- 在
return { { import = "lazyvim.plugins.extras.lang.python" }, { import = "lazyvim.plugins.extras.lang.markdown" },设置中文:
whichkey.lua
- 文件路径:
nvim ~/.config/nvim/lua/plugins/whichkey.lua
-- ~/.config/nvim/lua/plugins/whichkey.luareturn { { "folke/which-key.nvim", opts = { spec = { -- ==================== 顶级分组 ==================== { "<leader>f", group = "🔍 文件" }, { "<leader>s", group = "🔎 搜索" }, { "<leader>w", group = "🪟 窗口" }, { "<leader>b", group = "📑 Buffer" }, { "<leader>g", group = "🌿 Git" }, { "<leader>l", group = "⚡ LSP" }, { "<leader>d", group = "🐛 调试" }, { "<leader>t", group = "🧪 测试" }, { "<leader>q", group = "❌ 会话/退出" }, { "<leader>o", group = "📝 Obsidian" }, { "<leader>n", group = "📓 笔记" }, { "<leader>u", group = "🔧 UI/界面" }, { "<leader>x", group = "🔧 诊断" },
-- ==================== 子分组 ==================== -- 文件 { "<leader>ff", desc = "查找文件" }, { "<leader>fg", desc = "全文搜索 (Live Grep)" }, { "<leader>fr", desc = "最近打开的文件" }, { "<leader>fb", desc = "浏览 Buffer" },
-- 窗口 { "<leader>wd", desc = "关闭当前窗口" }, { "<leader>wo", desc = "只保留当前窗口" }, { "<leader>ws", desc = "水平分栏" }, { "<leader>wv", desc = "垂直分栏" }, { "<leader>w=", desc = "窗口等大" },
-- Obsidian { "<leader>ob", desc = "反向链接 (Backlinks)" }, { "<leader>ot", desc = "今日笔记" }, { "<leader>oq", desc = "快速切换笔记" }, { "<leader>os", desc = "搜索笔记内容" }, { "<leader>on", desc = "新建笔记" }, { "<leader>op", desc = "粘贴图片" }, }, }, },}keymaps.lua
- 文件路径:
nvim ~/.config/nvim/lua/config/keymaps.lua
-- ~/.config/nvim/lua/config/keymaps.lualocal map = vim.keymap.set
-- Obsidian 快捷键map("n", "<leader>ob", "<cmd>ObsidianBacklinks<cr>", { desc = "反向链接" })map("n", "<leader>ot", "<cmd>ObsidianToday<cr>", { desc = "今日笔记" })map("n", "<leader>oq", "<cmd>ObsidianQuickSwitch<cr>", { desc = "快速切换笔记" })map("n", "<leader>os", "<cmd>ObsidianSearch<cr>", { desc = "搜索笔记内容" })map("n", "<leader>on", "<cmd>ObsidianNew<cr>", { desc = "新建笔记" })
-- 窗口操作map("n", "<leader>ws", "<C-w>s", { desc = "水平分栏" })map("n", "<leader>wv", "<C-w>v", { desc = "垂直分栏" })map("n", "<leader>wd", "<C-w>c", { desc = "关闭当前窗口" })map("n", "<leader>wo", "<C-w>o", { desc = "只保留当前窗口" })实用技巧 & 工作流
- 快捷键:LazyVim 默认很多
<leader>键(空格),如<leader>ff找文件、gd跳转定义、K显示悬浮文档。 - 终端集成:用 WezTerm / Kitty + Tmux,nvim 里用
:terminal或toggleterm.nvim。 - 多语言:一个 vault 放笔记,项目目录直接打开 nvim 写代码。
- 同步:笔记用 Git + GitHub,或 Syncthing。
- 手机端:Obsidian App + Git 同步,或 Termux + nvim(进阶)。
- 性能:Neovim 通常比 VSCode 轻很多,适合老电脑或远程 SSH。
其他
常见问题解决
插件安装失败
- 清除缓存后重试
rm -rf ~/.cache/nvimrm -rf ~/.local/share/nvim/lazyrm -rf ~/.local/stare/nvim/lazy- 启动:
nvim
- 然后在 Neovim 中执行 :
update- 查找更新
如何重置配置
# 备份自定义配置cp -r ~/.config/nvim/lua/custom ~/nvim-custom-backup
# 重新安装rm -rf ~/.config/nvimgit clone https://github.com/LazyVim/starter ~/.config/nvim
# 恢复自定义配置cp -r ~/nvim-custom-backup ~/.config/nvim/lua/custom