做了两期 Neovim 从零配置的教学视频(lazy.nvim + 100% lua) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
SpiderXiantang
V2EX    程序员

做了两期 Neovim 从零配置的教学视频(lazy.nvim + 100% lua)

  •  7
     
  •   SpiderXiantang
    xiantang 2023-05-10 09:02:54 +08:00 9151 次点击
    这是一个创建于 884 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做了两期 neovim 的视频,讲的是如何从零配置 neovim ,

    你是否已经熟悉使用 Vim ,但感觉它的配置和扩展性有些局限?或者你是一名新的程序员,想要掌握一个强大且高度可定制的代码编辑器?无论哪种情况,NeoVim 都可能是你的最佳选择。NeoVim 是 Vim 的一个分支,它继承了 Vim 的所有优点,同时也增加了许多新的特性和改进。

    在我们的两期 NeoVim 中文视频教程中,我们将带领你从零开始,一步一步地学习如何配置和使用 NeoVim 。无论你是初学者还是有经验的 Vim 用户,我们都有适合你的内容。

    以下是你将在本教程中学习到的一些知识:

    • 更好的可扩展性和插件支持:NeoVim 优化了 Vim 的插件架构,使得创建和使用插件更加容易,学会使用 lua 代码配置 neovim 。
    • 与 tmux 进行交互:可以很方便的在 tmux 与 neovim 之间做切换。
    • 使用的 keybindings: 基于日常工作中发现的痛点配置的绑定,完全工作向,解决实际问题为主。
    • 内建 LSP:Neovim 的 LSP 是内建的,所以可以通过安装不同的 LSP 来很方便的让不同语言支持代码智能。
    • 更现代的 GUI:与 Vim 相比,NeoVim 支持更多的图形用户界面( GUI )选项,包括在浏览器中运行。
    • colorscheme: 如何配置和使用 NeoVim 的漂亮的颜色方案等。

    目前只制作了两期的 neovim 视频,想要从大家的评论中得到一些反馈,做出更好的视频。 第一次做这样的视频,想得到大家的一些反馈,这样也能做得更加起劲!

    P1 从零配置 neovim 成为你的个人开发环境(100% lua) 展示功能

    P2 从零配置 neovim 成为你的个人开发环境(100% lua) 基础配置+lazy.nvim+colorscheme

    第 1 条附言    2023-05-10 11:13:34 +08:00
    https://www.bilibili.com/list/3493292341725978 搞了一个合集 看起来方便一点
    第 2 条附言    2023-05-10 11:14:09 +08:00
    56 条回复    2023-06-30 15:15:58 +08:00
    itechify
        1
    itechify  
    PRO
       2023-05-10 09:09:51 +08:00 via Android   2
    谢谢制作~
    july1995
        2
    july1995  
       2023-05-10 09:12:47 +08:00   1
    三联奉上 . 这是我第 10086 次入坑 vim 了,希望这次可以真入坑.
    SpiderXiantang
        3
    SpiderXiantang  
    OP
       2023-05-10 09:15:09 +08:00 via iPhone
    @july1995 有遇到什么痛点吗 看看能不能我在下一个视频讲一下

    @oneisall8955 谢谢
    746970179
        4
    746970179  
       2023-05-10 09:32:13 +08:00   1
    好家伙, 昨天晚上才安装的 lazyvim, 今天就有相关教程了
    SpiderXiantang
        5
    SpiderXiantang  
    OP
       2023-05-10 09:37:01 +08:00 via iPhone
    @746970179 哈哈哈 我是一直想讲 neovim 相关的视频了
    mysalt
        6
    mysalt  
       2023-05-10 09:39:33 +08:00   1
    谢谢制作!
    MisakaTang
        7
    MisakaTang  
       2023-05-10 09:49:27 +08:00   1
    支持
    zhangddjs
        8
    zhangddjs  
       2023-05-10 10:19:25 +08:00
    感谢制作!解决了我很多痛点,支持!
    SpiderXiantang
        9
    SpiderXiantang  
    OP
       2023-05-10 10:22:29 +08:00
    @zhangddjs 嗯嗯 都是我在日常工作中遇到的 应该是实用的 hhh
    liansishen
        10
    liansishen  
       2023-05-10 10:37:52 +08:00
    mark 一下,上班没法看视频,回家去看看
    SpiderXiantang
        11
    SpiderXiantang  
    OP
       2023-05-10 10:39:44 +08:00
    @liansishen 感谢支持
    Aixtuz
        12
    Aixtuz  
       2023-05-10 10:42:08 +08:00
    点过去发现已经收藏过了~
    youngxhui
        13
    youngxhui  
       2023-05-10 10:43:27 +08:00
    用了一个月的 nvim ,最后感觉调试 debug 很不方便,最后又切回 goland
    SpiderXiantang
        14
    SpiderXiantang  
    OP
       2023-05-10 11:02:33 +08:00
    @youngxhui 已收集 我用的是 dap 目前主要是用 debug test , 我看看怎么 debug 服务,应该是不麻烦的。 主要是 debug 用 键盘控制其实很舒服
    mingwiki
        15
    mingwiki  
       2023-05-10 11:11:27 +08:00
    lazyvim 和 coc 有啥区别
    youngxhui
        16
    youngxhui  
       2023-05-10 11:14:16 +08:00
    @SpiderXiantang 我也是用 dap ,dap-ui 但是观察数据的时候,显示总是怪怪的,没有 vscode 或者 goland 方便。而且有大量日志的时候,查看控制台日志看起来也不方便
    SpiderXiantang
        17
    SpiderXiantang  
    OP
       2023-05-10 11:15:55 +08:00   1
    @mingwiki
    lazyvim : https://github.com/LazyVim/LazyVim 是一个 Neovim 的 开盒即用的配置
    lazy.nvim: https://github.com/folke/lazy.nvim 是一个插件管理器
    coc.nvim: https://github.com/neoclide/coc.nvim 支持代码补全和 lsp 的补全插件
    SpiderXiantang
        18
    SpiderXiantang  
    OP
       2023-05-10 11:19:17 +08:00
    @youngxhui 其实我用 debug 比较少, 日志的话主要是会打到本地,用 grep 来查
    > dap-ui 但是观察数据的时候
    我记得他是有 REPL 的,不过的确没有特别好用
    fannheyward
        19
    fannheyward  
       2023-05-10 11:30:14 +08:00
    @SpiderXiantang coc.nvim 不只是补全插件,是一个完整的 LSP client 。
    SpiderXiantang
        20
    SpiderXiantang  
    OP
       2023-05-10 11:31:09 +08:00
    @fannheyward 感谢纠错 我主要是用的是 hrsh7th/nvim-cmp + mason.nvim 不是特别熟悉
    ylhawj
        21
    ylhawj  
       2023-05-10 11:41:35 +08:00
    晚上看看学习下
    wanchenyi
        22
    wanchenyi  
       2023-05-10 11:49:06 +08:00 via Android
    Windows 可以用吗
    geminikingfall
        23
    geminikingfall  
       2023-05-10 11:50:15 +08:00
    精准推荐
    SpiderXiantang
        24
    SpiderXiantang  
    OP
       2023-05-10 11:50:33 +08:00
    @wanchenyi Neovim 可以在 window 上面用 `winget install Neovim.Neovim`
    SpiderXiantang
        25
    SpiderXiantang  
    OP
       2023-05-10 11:51:08 +08:00
    @tyrantZhao Neovim 要在中文社区掀起波澜!!
    FanyFull
        26
    FanyFull  
       2023-05-10 12:01:59 +08:00 via Android
    支持!之前都是用的别人的配置,很想自己亲手从零搭建。另外,我有个问题想问一下,不知道能否解答:我同样使用一份 AstroNvim 的配置,在 linux 上启动是 50ms 左右,在 windows 上则是至少三倍的时间。试了几台 windows 的电脑,配置也不低,但是速度就是上不来,不知道为什么。
    SpiderXiantang
        27
    SpiderXiantang  
    OP
       2023-05-10 12:06:41 +08:00
    @FanyFull
    使用 `nvim --startuptime time.log` 来 troubleshooting 吧,我没有 windows 的环境, 可以试试在不同的 terminal 上面的速度怎么样,我在 wezterm 上面就会很快

    > 之前都是用的别人的配置,很想自己亲手从零搭建
    从零搭建的好处就是你知道你所有的配置,出了问题可以很快解决
    FanyFull
        28
    FanyFull  
       2023-05-10 12:13:07 +08:00
    @SpiderXiantang 感谢回复。我会试一试 wezterm 。其实我在 Windows 上面(多台设备)启动原生的 neovim 也不是很快,vim 也不快,我不知道是不是 windows 的原因,我试过 Alacritty 这个终端,发现其并不能解决速度的问题,以及,我之前在网上搜索,发现讨论这个问题的人并不多。Linux 系统中使用 nvim 倒是一直都很快。
    SpiderXiantang
        29
    SpiderXiantang  
    OP
       2023-05-10 12:15:34 +08:00 via iPhone
    @FanyFull 我其实是推荐你使用 wsl2 的
    webfrogs
        30
    webfrogs  
       2023-05-10 12:45:52 +08:00   1
    已关注
    952764934
        31
    952764934  
       2023-05-10 12:52:24 +08:00
    问个小白的问题:使用 neovim 的最大好处是啥呀?我是做 Java 开发的,能替代 intellij idea 吗?感觉 intellij 挺好用的
    SpiderXiantang
        32
    SpiderXiantang  
    OP
       2023-05-10 13:35:16 +08:00 via iPhone
    @952764934 全键盘操作 高度自定义化
    做 java 开发的话 比较困难 因为 idea 给 java 做了 很多高级的操作 我建议是使用 ideavim 非常好用
    akring
        33
    akring  
       2023-05-10 14:04:21 +08:00
    还在用 Packer ,等晚上回去看看 Lazy 怎么样。不得不说 Neovim 的插件管理工具进化的也太快了
    SpiderXiantang
        34
    SpiderXiantang  
    OP
       2023-05-10 14:17:34 +08:00
    @akring 推荐切 lazy.nvim 不需要编译 懒加载配置方便 页面好看
    yaroga
        35
    yaroga  
       2023-05-10 14:52:41 +08:00
    去年年初玩了两个月后来放弃了,两个原因
    1 、各种语言测试调试不是很舒服,不知道现在怎么样
    2 、插件不稳定,更新总有各种 breaking changes 。记得当时刚整出一套自己的配置没多久更新到 nvim0.8 挂了一片还得重新搞,太折腾了..
    SpiderXiantang
        36
    SpiderXiantang  
    OP
       2023-05-10 15:01:19 +08:00
    @yaroga
    1. dap 配起来的确比较麻烦 我现在打日志和写单测 debug 居多
    2. 我们有了 lazy.nvim 有 lock file 如果插件作者做 breaking changes 可以快速回滚到之前的版本,尽量不升级插件是比较稳定的选择 也不折腾
    testcase1
        37
    testcase1  
       2023-05-10 17:47:07 +08:00
    支持
    wyattyhh
        38
    wyattyhh  
       2023-05-10 17:55:54 +08:00
    很想知道如何在工作的无网络 Windows 环境下使用 nvim 配置(比如 Lazyvim)
    直接在另外一台有网络的电脑上下载配置依赖, 然后再复制过去吗?
    如果我用 Mac 下载, 能不能在 Windows 上用
    gugu33
        39
    gugu33  
       2023-05-10 18:04:05 +08:00 via iPhone
    支持,马克一下
    testcase1
        40
    testcase1  
       2023-05-10 18:27:37 +08:00   1
    @wyattyhh
    拷贝目录
    ~/.local/share/nvim/lazy/


    > 如果我用 Mac 载, 能不能在 Windows 上用
    这个我不知道 感觉不大行 最好是系统一样



    @gugu33
    感谢支持
    mrfox
        41
    mrfox  
       2023-05-10 18:38:34 +08:00
    似乎不是从零,移动到 backup 之后就直接进入了,没接触过的表示安装步骤呢
    dragondove
        42
    dragondove  
       2023-05-10 18:41:40 +08:00   1
    @FanyFull windows 的问题,neovim 依赖 libgcc/libstdc++/libwinpthread 之类的东西,这些东西本身编写的时候没有特别考虑 win 平台上的表现,性能稍微差点也正常。一般情况下 neovim 启动速度不超过 200ms 个人认为都是可以接受的。我个人基于 lazyvim 的配置在 8 代 intel 低压 u 的 win 上空运行启动时间大概是 40ms 。如果你想要编写自己的配置,我建议先看看 lazyvim 的 starter template ,然后你把 lazyvim 这个依赖删掉就是一个不错的启动模板了,再去 lazyvim 上抄一点内容(或者保留 lazyvim ,按你自己的喜好就可以哈)具体的性能分析可以用:Lazy 打开 lazy.nvim 的面板然后按 P 查看各个插件的耗时,如果要查看完整的启动周期的耗时就使用 nvim --startuptime out.txt 然后打开 out.txt 查看耗时
    SpiderXiantang
        43
    SpiderXiantang  
    OP
       2023-05-10 19:38:33 +08:00 via iPhone
    @mrfox 你指的是重新安装 neovim 吗?
    DigitalG
        44
    DigitalG  
       2023-05-10 19:56:56 +08:00
    请教一个问题,我自己前段时间从 packer.nvim 到 lazy.nvim 了,方便的地方就不说了,但是遇到了一个奇怪的地方。我自己的 nvim 配置是放在非标准目录的(修改了 VIMINIT 到`source ${HOME}/.dotfiles/nvim/init.vim`,也添加了这个目录到 runtimepath, 然后里这个文件里转到执行 lua ,也就是 ${HOME}/.dotfiles/nvim/lua/init.lua )。之后 require 了我的几个脚本,包括 lazy 的那个,但奇怪的是,每次执行 lazy 的插件配置时,我加到 runtimepath 的路径都会被删掉(在进入 lazy 配置前是正常包含我指定的 runtimepath 的,但执行后不知道什么阶段就会消失。我尝试注释掉一些插件配置,但很奇怪不是固定的某个插件产生的)。网上也没看到比较一致的问题。
    导致我在执行 lazy 的配置后,都要手动再修改 runtimepath 。
    @SpiderXiantang #43
    wtdg86ok
        45
    wtdg86ok  
       2023-05-10 21:00:16 +08:00
    感谢教程~
    hugo54
        46
    hugo54  
       2023-05-10 22:17:24 +08:00
    很期待后续教程哦
    adian
        47
    adian  
       2023-05-10 22:32:39 +08:00
    已关注
    SpiderXiantang
        48
    SpiderXiantang  
    OP
       2023-05-10 23:34:23 +08:00
    @DigitalG 我觉得你可以从源头解决这个问题 比如说过把这个 ${HOME}/.dotfiles/nvim/ 软链到 ${HOME}/.config/nvim/
    SpiderXiantang
        49
    SpiderXiantang  
    OP
       2023-05-10 23:34:56 +08:00
    @DigitalG 这样你既有版本管理,lazynvim 的行为也可以正确
    mrfox
        50
    mrfox  
       2023-05-11 02:40:47 +08:00
    @SpiderXiantang 不是,从未安装过,看视频教程里说到 backup 后就进入正题了,当然从零配置也可以解释为安装已经会了,只是配置,这样的话跳过安装也是可以的
    SpiderXiantang
        51
    SpiderXiantang  
    OP
       2023-05-11 11:34:33 +08:00
    @mrfox 我打算第三期直接在 docker 里面配置,这样的话就完全从 0 了
    DigitalG
        52
    DigitalG  
       2023-05-11 13:33:53 +08:00   1
    @SpiderXiantang #49 又去翻了下文档,在 lazy.nvim 的 setup 说明里找到了个参数说是会 reset runtime path ,之前没想到会这么操作,盲区了是,没第一时间去搜索下文档。。。
    july1995
        53
    july1995  
       2023-05-12 09:38:49 +08:00
    @SpiderXiantang
    > 有遇到什么痛点吗 看看能不能我在下一个视频讲一下

    代码自动补全,lsp 相关的研究了好久都没搞懂. “mason.nvm”, “mason-lspconfig”, “nvm-lspconfig”.这三个一直没搞明白.
    经过最近两天的琢磨,总算搞懂了 lsp 和自动补全的区别.
    期待出一期视频,讲解一下 lsp 相关.
    wanchenyi
        54
    wanchenyi  
       2023-05-16 11:26:13 +08:00 via Android
    @july1995 我也有这样的疑惑
    SpiderXiantang
        55
    SpiderXiantang  
    OP
       2023-05-16 15:24:38 +08:00
    @july1995
    @wanchenyi https://www.bilibili.com/video/BV1vg4y1G7aJ/?spm_id_from=333.788&vd_source=5484b15558aa13a4ce6e1915ce86b31e
    看这个 第三期 1 个小时 16 分钟 个人感觉讲的还是比较清楚的
    Corybyte
        56
    Corybyte  
       2023-06-30 15:15:58 +08:00
    视屏捏
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3519 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 10:29 PVG 18:29 LAX 03:29 JFK 06:29
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86