配置路径
如果需要自定义配置路径,则先设置好 xdg 目录,再安装 neovim,将 nvim 配置文件夹放置在 XDG_CONFIG_HOME 路径中。
没有说明的快捷键
snacks explorer
在snacks explorer中,按?是帮助。
H: 显示隐藏文件
I: 显示忽略文件
i: 进行搜索
lazygit
在已经安装了lazygit的前提下,不用再自行配置lazygit插件,只需要 <leader>gg即可打开lazygit
blink-cmp
一种较为舒适的补全键盘方案:(lua/plugins/blink.lua)
return {
"Saghen/blink.cmp",
opts = {
keymap = {
preset = "super-tab",
["<CR>"] = { "accept", "fallback" },
},
},
}快捷键:<c-n> <c-p> 用于选择下一个和上一个,回车用于确定选择,tab 用于snippets的跳转。
禁止 xmake.lua 自动格式化
在autocmd.lua中添加:
vim.api.nvim_create_autocmd("FileType", {
pattern = "lua",
callback = function()
-- 获取当前缓冲区文件名(不含路径)
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(0), ":t")
-- 仅当文件名为 xmake.lua 时禁用格式化
if filename == "xmake.lua" then
vim.b.autoformat = false
end
end,
})
多光标
注意,使用以下配置,在按 Esc 退出多光标模式后,需要再执行 gl 以保证 <Leader> 正常工作。
return {
"brenton-leighton/multiple-cursors.nvim",
version = "*", -- Use the latest tagged version
opts = {}, -- This causes the plugin setup function to be called
keys = {
{ "<C-A-j>", "<Cmd>MultipleCursorsAddDown<CR>", mode = { "n", "x" }, desc = "Add cursor and move down" },
{ "<C-A-k>", "<Cmd>MultipleCursorsAddUp<CR>", mode = { "n", "x" }, desc = "Add cursor and move up" },
{ "<C-A-Up>", "<Cmd>MultipleCursorsAddUp<CR>", mode = { "n", "i", "x" }, desc = "Add cursor and move up" },
{ "<C-A-Down>", "<Cmd>MultipleCursorsAddDown<CR>", mode = { "n", "i", "x" }, desc = "Add cursor and move down" },
{ "<C-LeftMouse>", "<Cmd>MultipleCursorsMouseAddDelete<CR>", mode = { "n", "i" }, desc = "Add or remove cursor" },
{
"<Leader>m",
"<Cmd>MultipleCursorsAddVisualArea<CR>",
mode = { "x" },
desc = "Add cursors to the lines of the visual area",
},
{ "<Leader>a", "<Cmd>MultipleCursorsAddMatches<CR>", mode = { "n", "x" }, desc = "Add cursors to cword" },
{
"<Leader>A",
"<Cmd>MultipleCursorsAddMatchesV<CR>",
mode = { "n", "x" },
desc = "Add cursors to cword in previous area",
},
{
"gb",
"<Cmd>MultipleCursorsAddJumpNextMatch<CR>",
mode = { "n", "x" },
desc = "Add cursor and jump to next cword",
},
{ "gB", "<Cmd>MultipleCursorsJumpNextMatch<CR>", mode = { "n", "x" }, desc = "Jump to next cword" },
{ "gl", "<Cmd>MultipleCursorsLock<CR>", mode = { "n", "x" }, desc = "Lock virtual cursors" },
},
}xmake集成
return {
"Mythos-404/xmake.nvim",
version = "^3",
lazy = true,
event = "BufReadPost",
config = true,
}LazyExtras
输入 :LazyExtras进行插件管理,包括各种语言,可以安装:
- coding.blink
- coding.mini-surround
- coding.yanky
- editor.dial
- editor.snacks_explorer
- editor.snacks_picker
停止 Markdown 拼写检查
-- autocmds
vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")Markdown-preview
安装LazyExtras安装无法浏览器预览,需要按照官网指示:
return {
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
end,
ft = { "markdown" },
}在安装了 nodejs 和 yarn 后,重新安装 markdown-preview,才可以。
如何重新安装?<leader>l 进入 Lazy 界面,选择 markdown-preview,按 gb
一种浅色主题
-- lua/plugins/rose-pine.lua
return {
"rose-pine/neovim",
name = "rose-pine",
config = function()
vim.cmd("colorscheme rose-pine-dawn")
end,
}Neovide 集成
-- options.lua
vim.o.guifont = "CaskaydiaCove Nerd Font:h18"
vim.g.neovide_cursor_vfx_mode = "railgun"
vim.g.neovide_scale_factor = 1.0
-- keymaps.lua
if vim.g.neovide then
vim.keymap.set({ "n", "v" }, "<C-=>", ":lua vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + 0.1<CR>")
vim.keymap.set({ "n", "v" }, "<C-->", ":lua vim.g.neovide_scale_factor = vim.g.neovide_scale_factor - 0.1<CR>")
vim.keymap.set({ "n", "v" }, "<C-0>", ":lua vim.g.neovide_scale_factor = 1<CR>")
end默认的常用快捷键
<leader>,搜索buffer- explorer中按
<c-v>vsplit open <c-/>or<leader>fttoggle terminal: root directory<leader>fTterminal: current work directory<leader>w窗口相关操作<leader>bbuffer相关操作- 窗口与buffer相关操作:
o:关闭其他,d:关闭当前 - 下一个 buffer 和上一个 buffer:
]b`[b - 退出软件:
<leader>qq <C-hjkl>移动到其他窗口<leader>cs打开大纲视图<leader>p打开粘贴历史<leader>eor<leader>E打开文件浏览器,根目录与当前目录
Clangd
Root 目录
lazyvim 中root_dir 设置
root_spec 设置
在
options.lua文件中,有以下选项:-- LazyVim root dir detection -- Each entry can be: -- * the name of a detector function like `lsp` or `cwd` -- * a pattern or array of patterns like `.git` or `lua`. -- * a function with signature `function(buf) -> string|string[]` vim.g.root_spec = { "lsp", { ".git", "lua" }, "cwd" }可以加入我们自己的目录检测设置,例如,对于xmake项目,可以检测是否存在
xmake.lua文件:vim.g.root_spec = { "lsp", { "xmake.lua", ".git", "lua" }, "cwd", }lsp 相关
有时,即使设置了
root_spec选项,也有可能会出现目录检测出问题的情况。例如,我碰到了在nvim设置目录中打开一个文件,但是根目录检测到了用户目录的情况。这种情况一般是
lsp函数调用时,检测出了问题。例如,我碰到的这种情况,其实可以参考 lua lsp 的规则,然后发现,我的用户目录不清楚为什么出现了.luarc.jsonc,删除后就正常了。为了避免再出现这个问题,可以把root_spec选项只保留cwd,手动控制是最直观的。此外,
指向原始笔记的链接jdtls.nvim需要特别注意,参见lazyvim 折腾 Java 环境踩坑记录。