Skip to content
/ nvim Public

neovim配置文件,基于lua编写,适合python、java、sql等开发者

Notifications You must be signed in to change notification settings

ilovevim/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Neovim插件配置

Neovim版本很多,如果图省事,那么类似于LazyVim之类市场上有好多款可开箱就用。如果想从零开始自己折腾,最大化自由度,那么基于Kickstart模板配置是一个不错的选择。

关于如何搜索各种插件,github上的rockerBOO/awesome-neovim已经做了非常详细的梳理,强烈推荐!其分类详细几乎囊括了所有可能会用到的插件,但也正是因为其分类详细、数量庞杂,读者往往无所适从,不知该用那一款。针对这个问题,一种办法是看谁的star高,1k以上的通常都是质量不错的,但是1k以内的其实也不能完全看star高低来做比较。

下面,笔者梳理了一些插件的安装和使用心得,也尝试做了些横向比较供vim爱好者们参考。需要特别提醒的是,比较的维度可能是纯个人主观的想法,只有真正自己安装使用后才知道是不是符合自己的操作习惯,是不是“好用”。

由于mini系列插件功能强大,而且追求极致精简的理念深得我意,所以能用mini代替的尽可能都换了,目前用到了ai、surround、files、splitjoin、tabline、cursorword、trailspace、indentscope、operators等子插件。

  1. lazy.nvim插件管理

    大名鼎鼎的telescope、treesitter、nvim-web-devicons等不用犹豫太多,装上就是。

    插件功能 点评
    surround nvim-surround很强大,用mini.surround平替
    光标移动 建议flash.nvim,其他hop、leap用习惯了其实也可以
    词高亮 建议vim-highlighter(f键方便),interestingwords不灵巧
    折叠插件 nvim-ufo、fold-preview等都弃用了
    bufferline bufferline有点臃肿,且标签太宽放不了几个文件,用mini.tabline平替
    statusline lualine很强大,mini.statusline可平替,但为了集成navic面包屑,保留了lualine
    winbar nvim-navic直接集成到lualine中,不再需要barbecue
    文件树 nvim-tree足够了,neo-tree没有再去试
    LSP相关 lspsaga、trouble等花里胡哨没有必要,相关功能集成到telescope即可
    LSP进度提示 fidget
    AICode avante+deepseek相对便宜、国产fittencode免费,codeium需要科学上网才能用
    代码补全 建议nvim-cmp,blink.cmp、coq_nvim等没再去试
    代码调用树 litee、litee-calltree太重,试用后已卸载
    代码大纲 建议轻量级aerial,vista.vim偏重
    函数签名浮窗 建议lsp_signature,cmp-nvim-lsp-signature-help有点小问题
    函数参数高亮 建议hlargs
    代码注释 建议mini.comment,Comment.nvim额外支持行尾加注释
    代码调试 nvim-dap,再搭配不同语言调试器,比如python的debugpy
    rest客户端 建议kulala,rest.nvim要求装的luarocks会导致版本混乱不能用
    sql相关插件 考虑nvim-dbee,sqls.nvim仅支持mysql少数几种数据库剔除
    latex相关 建议vimtex
    markdown相关 建议markdown-preview
    通知框 建议noice.nvim+nvim-notify,其他fidget、mini.notify没多试
    按键提示 建议which-key
    themes tokyonight、hybrid、kanagawa等标星高的都行
    版本管理 建议gitsigns、neogit等
    会话管理 建议auto-session,neovim-session-manager易报错
    终端切换 建议toggleterm,vim-floaterm评价也很高
  2. Mason插件管理(LSP、DAP、Linter、Formatter)

    插件功能 点评
    python pyright最稳定,再加一个ruff即可,pylyzer、jedi、basepyright等会提示找不到stub文件,导致无法顺利跳转底层包代码,DAP调试用debugpy
    java jdtls
    latex ltex-ls
    markdown marksman
    lua lua_ls、stylua
    c clangd

Neovim冷门命令

  1. 搜索、替换

    命令:?,/,s 功能
    /\v[\u4e00-\u9fff]+ 查找中文
    /foo(bar)@= "foo" in "foobar"
    /foo(bar)@! any "foo" not followed by "bar"
    /(foo)@<!bar any "bar" that's not in "foobar"
    /(//.*)@<!in "in" which is not after "//"
    :%s/%u200b//gc 删除Unicode字符<200b>,代表零宽空格
  2. global

    命令:global 功能
    :g/foo/-1p 打印匹配所在行的前一行
    :g/foo/-1,.p 打印匹配所在行的前一及本行
    :g/foo/-1,+1p 打印匹配所在行的前后行
  3. 其他

    命令:其他 功能
    :browse oldfiles! 打开oldfiles(所有打开过的terminal和buffer)
    :filter /^foo/ oldfiles 过滤oldfiles文件
    :lua vim.print() 传入table对象并打印,类似vim.inspect()函数
    :e ++enc=gbk 文件乱码时重新按指定字符集加载文件,GB18030是GBK的超集
    :redir @+ | set rtp | redir END 输出结果重定向至指定寄存器

插件使用记录

日期 插件名称 点评
20250528 pretty_hover 额外增加转义符影响阅读,比如[...]会显示成\[...\]

About

neovim配置文件,基于lua编写,适合python、java、sql等开发者

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published