V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SpiderXiantang
V2EX  ›  程序员

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

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

    做了两期 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
    oneisall8955
        1
    oneisall8955  
       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 可以用吗
    tyrantZhao
        23
    tyrantZhao  
       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   ·   实用小工具   ·   1929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.