我是从 2010 年毕业参加工作后,就一直使用 vim 作为主要开发工具,到现在 10 多年了,在公司做的项目基本都是在 vim 上完成的,中间写过一小段时间的 java 在 eclipse 上。最近一年内自己做的一些 side project 有在 vscode 上开发,所以目前我的主要开发环境是 vim + vscode (我个人电脑上安装的编辑器有 vim/neovim ,vscode ,zed ,cursor ,emacs )。
最近,我们决定做一款编辑器的主题 (Hardhacker Themes)玩玩,一款主打好看又护眼的主题,经过网友的使用,被定位成了 “骚粉” or “基佬紫” 风格 (主题链接见文末)。
作为资深的 vim 用户,我选择了做 vim 和 emacs 的主题。在做 hardhacker theme for vim 的时候,发现除了终端里的 vim ,我还需要兼容考虑 gui vim ( macvim )以及这两年的新秀 neovim 。特别是在测试 neovim 的时候,就粗略的体会到 neovim 比 vim 似乎更现代一些,比如默认支持 true color ;内置 lsp 、terminal ;配置可以采用纯 lua 编写,这一点我比较喜欢(可以和 emacs 用户一样了,无聊的时候就重构自己的配置代码玩)等等。
心动不如行动啊,就开始着手将自己 vim 的陈年老配置全部迁移到 neovim 。一次性将 vimrc 全部改写成 neovim 的 init.lua 代码,总共耗时我 4 ,5 天吧,一边学习一边迁移到 lua 。大部分的时间花在了一点点的调整、打磨每一个插件的配置,除了功能以外,想要将整个编辑器环境的风格和 Hardhacker 主题配色严格保持一致,这样出来的效果才干净、整洁,追求极致的视觉,哈哈。
看到这里,可能会觉得我标题党了一把,neovim 确实只是一个新的 vim ,本质还是 vim ,对 vim 的兼容也是很全面的,但确实有一些新的东西值得去尝试。
认认真真的花时间做了 neovim 的迁移,那就顺手把这个新的 neovim 配置给开源出来分享一下。如果你也是 vim/neovim 用户,可以考虑尝试一下,也可以一起改进、维护。
目前我也不用上班,有充足的时间可以用来维护开源项目,所以放心尝试,大胆提 issue 。
献上我们的项目链接 (两个小项目都保持持续优化,打磨)
再贴几个 Preview
![]() | 1 ampedee 2023-05-09 16:10:17 +08:00 via iPhone ![]() vim 爱好者愤怒点进来,满意离开 |
4 fds 2023-05-09 16:16:08 +08:00 标题党! 兼容的编辑器可真多。 好粉嫩…… |
![]() | 5 hanswu 2023-05-09 16:18:46 +08:00 ![]() VsCode 上已经安装了大佬的主题,颜色没有那么的亮,并且背景又粉又紫的(很烧),目前使用很舒服 |
![]() | 6 ChrisFreeMan 2023-05-09 16:21:45 +08:00 ![]() 来不及收刀了,厚葬友军 |
![]() | 7 weixiangzhe 2023-05-09 16:24:20 +08:00 着实标题党 |
![]() | 8 hronro 2023-05-09 16:24:40 +08:00 Neovim is VIM. Neovim isn't VIM. 这就是 Neovim 最棒的两个特点。 |
![]() | 9 ixx 2023-05-09 16:28:29 +08:00 如果这算放弃的话那么我早就放弃了 应该第三、四次换电脑的时候就不按原生 vim 了 直接用插件了 |
![]() | 10 mogita 2023-05-09 16:30:24 +08:00 支持一键包,有空了试试。目前在用 [NvChad]( https://nvchad.com)。 |
![]() | 11 anson0370 2023-05-09 16:34:59 +08:00 怎么办,我也有点想用 neovim 了。可我不会啊 。 |
12 alfa 2023-05-09 16:39:20 +08:00 ![]() 标题党,祝你 esc 失灵 |
13 vast0906 2023-05-09 16:45:54 +08:00 很烧,vscode 已经换上了 |
16 rzdCG 2023-05-09 16:49:39 +08:00 我就猜是 nvim 哈哈 |
20 alexsunxl 2023-05-09 16:58:39 +08:00 历史很快会再次上演。 当年 vim 干翻 vi ,估计过不了几年,nvim 要干翻 vim 了。 |
21 Huelse 2023-05-09 16:59:05 +08:00 试了下你的 vscode HardHacker 主题,light 的线条感觉不错,字体颜色能深一点就更好了 |
![]() | 22 beyondgamp 2023-05-09 17:01:12 +08:00 via Android 非常不错 学习 |
23 anytk 2023-05-09 17:10:14 +08:00 说的我也有点想切 nvim 了,列入计划 |
![]() | 24 zoffy 2023-05-09 17:13:06 +08:00 上个月就安装了,非常好主题,成功替换了我使用了四、五年的 Over Night Owl 主题,唯一的遗憾是 Darker 背景色还是有点亮 |
![]() | 25 itskingname 2023-05-09 17:14:35 +08:00 neovim vs spacevim vs vscode 大家觉得哪个更好。 |
26 thiswind 2023-05-09 17:15:08 +08:00 neovim 不还是 vim 嘛 不过我现在用 vscode 基本替代了 vim 了,包括远程连服务器我都用 vscode 了 |
![]() | 27 Snail5956 2023-05-09 17:18:20 +08:00 ![]() 试了一会发现还是有点刺眼,还是切回我的 Noctis Azureus ,你这个和 Noctis Uva 有点像,但是字的亮度和背景对比度比较高。 |
![]() | 28 air00dd 2023-05-09 17:22:58 +08:00 Vim 也在以不同方式多路径迭代 |
![]() | 29 liuxu 2023-05-09 17:26:09 +08:00 ![]() 没有理由不用 doom emacs |
![]() | 30 hronro 2023-05-09 17:47:41 +08:00 @skoofancy #17 你去看看 Neovim 的 commit ,他现在还在不停地 merge 上游 VIM 的改动,所以你要说 Neovim 不是 VIM ,我是不认同的 |
31 fengjianxinghun 2023-05-09 17:53:17 +08:00 试了下配置,包全部得用 git clone 下来,几乎很难一次性成功,然后只能删了.local 重来 |
![]() | 32 anson0370 2023-05-09 17:54:51 +08:00 @Huelse 谢谢你的建议。VSCode 的 light 版本目前算是 beta ,应该还会调整。现在 light 版的彩色都差不多卡在 4.5 对比度(也就是 WCAG AA 标准上),进一步拉高对比度(也就是要降低亮度)会进一步导致几种颜色之间的区分度下降。像粉色和紫色、蓝色和青色、蓝色和灰色之间会变的更难分清。另外也可能导致过不了色盲安全检查。 所以我就很纠结。我想可能可以对出现频率较高的其中部分颜色做一下调整。 |
33 fengjianxinghun 2023-05-09 17:55:58 +08:00 @fengjianxinghun 可以给 ensure_packer 函数加个 git 代理 |
![]() | 34 hanxiV2EX 2023-05-09 18:10:43 +08:00 via Android |
![]() | 36 wellerman 2023-05-09 18:14:44 +08:00 ![]() 不错,不过我平时主要用 emacs ,vim 的主要作用就是改 emacs 的配置和查看文件。 |
![]() | 37 skoofancy OP @fengjianxinghun 有道理啊。。。我是长期开着系统代理,好像很顺滑。 |
40 Leei 2023-05-09 18:39:33 +08:00 via Android @wellerman 用 vim 改 Emacs 的配置,老 NTR 了,我也喜欢这么干,特别在 Emacs 的配置出问题的时候 |
41 james122333 2023-05-09 18:54:03 +08:00 我改用 vi ,因为你现在使用的配置移植性都很差,只有该编辑器专用 还有左边档案列表虽然所有 IDE 都这样做,但其实它能做的就是少少事情 例如递寻找某些档案但是要排除一些删除,这种类似或其它操作无法的 现在都是 vi way |
42 Mbb38C3HtyZydTt7 2023-05-09 19:34:33 +08:00 一开始以为是从 vim 转 vscode 了,原来是用了 Neovim 另外 helix 也不错 |
![]() | 43 skoofancy OP @james122333 回到用 vi 确实让我意外了。你说左侧的列表,我个人习惯来说并不是主要是用来找文件的,而是可以看到状态变化,比如文件本修改了,能够将 git 状态同步到上面,就很方便。至于查找文件有 telescope 这种更好用的插件。 |
44 duke807 2023-05-09 19:59:31 +08:00 via Android 想当年,我放弃了 神专用编辑器 一开始还没有完全放弃,但只用来给别人发来的代码转 utf8 编码,现在已经完全不用 emacs 了 |
45 alexsunxl 2023-05-09 20:02:49 +08:00 @vthe helix 插件系统还没定下来呢。rust 写的就感觉代码看的挺舒服的,还能 build 起来玩。 据说要用 wasm 搞插件系统 |
46 alexsunxl 2023-05-09 20:05:03 +08:00 @skoofancy telescope 确实太强了。杀手级插件。 加上 mason 开箱即用 lsp 。treesitter ,完全吸收了社区最牛的东西。真的是有东西。 |
47 sumu 2023-05-09 20:31:49 +08:00 推荐 AstroVim ,用了一年多了,开箱即用。如果愿意折腾,也能方便的融入自定义配置 |
48 NanFengxuan 2023-05-09 20:38:11 +08:00 谢谢 op ,已经用上了。  |
49 Huelse 2023-05-09 21:14:05 +08:00 @anson0370 确实比较难衡量,但可以考虑阶梯对比度,例如常量关键词->类名->方法名这样递减,当然这又增加你的工作量了 |
![]() | 51 skoofancy OP @sumu Astrovim 做得很好,我也学习了一下,致敬啊。我也想做成 AstroVim 啊(虽然重复造轮子不好),好难,得靠大家支持。 |
![]() | 52 cocang 2023-05-09 21:46:01 +08:00 猛男粉配色,谁能拒绝啊 |
53 wizardyhnr 2023-05-09 22:22:09 +08:00 早切换了,忘了什么原因。neovim 其实也兼容 vimrc 格式的配置,不想折腾 copy 到 init.vim 里就行了。我现在是 nvim+tmux ,多开两个 tmux 窗口显示输出模拟 IDE 。 |
54 vhysug01 2023-05-09 22:26:30 +08:00 咨询大家个问题,用 vim 时候感觉不太方便 vscode 操作的列模式和 ctrl-D, 试了几个 vim 包,都不如 vscode 操作顺滑 |
55 james122333 2023-05-09 23:07:04 +08:00 @skoofancy 以 vi 逻辑就是写个外部脚本直接 git status 看要做什么 因为把功能留给外部实现(当然有些功能没办法 但没办法的功能都不是刚需)所以换编辑器可套用 我当初就是研究其它编辑器发现原来写的都不可用才意识到这问题 至于找档案并处理是善用本身特性可以做的 呼叫 cp mv rm tar find 等命令就可以 这用法是 vi way |
56 Sharenruma 2023-05-09 23:21:52 +08:00 via iPhone 没想过用 lazy.nvim 重新配一下插件吗?我前几天迁移完了,感觉还挺不错。 |
![]() | 57 jiangzhizhou 2023-05-09 23:24:21 +08:00 我觉得像 java 这种 dependency 乱飞,micro services SOA 的用 vim 是不太方便的。 第一份工作只能 ssh 写,tmux 感觉比 vim 更加黑科技。 vs_code 越来越大起来了,感觉之后可能也变成和 jetbrain 一样 |
58 james122333 2023-05-09 23:31:07 +08:00 ide 就几个功能比较重要 查定义 查引用 重构名称 代码格式化 快速开启 全文检索 debug server 这面应该就重构名称和 debug server 比较麻烦 |
59 WispZhan 2023-05-09 23:36:51 +08:00 via Android 比起 neovim ,还是想等 helix 。 |
![]() | 60 Kaiv2 2023-05-09 23:37:58 +08:00 ![]() 万年 gruvbox 看习惯了。推荐下我打配置 写 java 的小伙伴可以试试我的配置 https://github.com/JavaHello/nvim |
![]() | 61 skoofancy OP @james122333 重构名称不麻烦了,除了 debug server 其他这一趴基本都是 lsp 的事情,现在都可以做得很好。debug 我认为是最大的短板比起一些 ide 。 |
![]() | 62 skoofancy OP @Sharenruma 有啊,我在 readme 的插件部分标注,准备迁移到 lazy |
63 james122333 2023-05-09 23:59:58 +08:00 |
![]() | 64 maleclub 2023-05-10 00:13:43 +08:00 via Android 你个骗子!你个标题党!你个骚货!....不过我就好这口,收藏了,明天部署起来! |
65 gugu33 2023-05-10 00:24:41 +08:00 via iPhone 按个爪 |
![]() | 66 DigitalG 2023-05-10 00:29:03 +08:00 想请教一下,vim 配置(比如修改插件,重写一些 vim 回调)的一些方法。我自己也用 neovim ,也做了很多配置,全部迁移到了 lua 脚本上。经常碰到修改插件的情况,但是我大部分时间还是停留在利用 print 函数,然后看 vim 那个几行的状态栏。有没有什么方便的方法来进行调试 debug 呢?网上找了下,也没找到合适的内容。 |
![]() | 67 SpiderXiantang 2023-05-10 00:43:28 +08:00 via iPhone 做了两期 neovim 的视频 大家可以参考一下 中文资源太少了 P1 从零配置 neovim 成为你的个人开发环境(100% lua) 展示功能 https://www.bilibili.com/video/BV1hP41117rt/?vd_source=5484b15558aa13a4ce6e1915ce86b31e P2 从零配置 neovim 成为你的个人开发环境(100% lua) 基础配置+lazy.nvim+colorscheme https://www.bilibili.com/video/BV1DM41137MW/?vd_source=5484b15558aa13a4ce6e1915ce86b31e |
68 MetroWind 2023-05-10 00:55:38 +08:00 Emacs 用户飘过~~ |
![]() | 71 mattxlee 2023-05-10 01:12:44 +08:00 看了一下你的 plugins 列表,有个问题。既然已经有了 lsp 的一系列的支持,为啥还要单独安装 rust, go 的插件? 另外推荐 lazygit 。 |
![]() | 72 ZeroW 2023-05-10 01:54:20 +08:00 支持,另外 lazy.nvim 和 NvChad 也很好用,可以横向对比一下 |
![]() | 73 Chingim 2023-05-10 07:11:19 +08:00 @james122333 对我来说, 左边文件树还挺有用的. 我有这些高频使用场景: 1. 在某个文件夹下创建文件 2. 移动某个文件 3. 重命名文件 4. 直接打开某个路径的文件. 有时候文件名是一样的, 只是路径不同, 这种场景我不想用 telescope 来查找 |
74 ufo5260987423 2023-05-10 08:41:32 +08:00 用 lunarvim 的路过,也是 neovim 的一个配置 |
![]() | 75 fortitudeZDY 2023-05-10 08:48:44 +08:00 emacs 老用户漂过,你们 vim 用户玩的 high 就好 :) |
![]() | 76 xiaket 2023-05-10 08:54:30 +08:00 翻了一下 git, 发现自己是 16 年就切到用 nvim 了... |
![]() | 77 archxm 2023-05-10 09:24:51 +08:00 放心,你会回来的。 |
78 wqzjk393 2023-05-10 09:38:02 +08:00 via iPhone mac 终端不支持真彩色啊,这个做了优化么? |
79 Befehishaber 2023-05-10 09:43:49 +08:00 @alfa 笑死 |
80 zhengzhongzhao 2023-05-10 09:46:37 +08:00 啥 rust 项目 |
![]() | 81 akring 2023-05-10 09:53:41 +08:00 友军厚葬 |
![]() | 82 itfanr 2023-05-10 09:55:28 +08:00 我以为投靠 vs code 了呢。。。 |
![]() | 83 psklf 2023-05-10 10:54:02 +08:00 go/neovim Please |
![]() | 84 yangxin0 2023-05-10 11:15:29 +08:00 紫色的主题,有点晃眼睛。 |
![]() | 85 freefcw 2023-05-10 11:39:54 +08:00 主题有点太骚了……vscode 下吃不消 |
86 bthulu 2023-05-10 11:49:59 +08:00 能不把所有颜色变量统一到一个配置文件里, 这样我就能搞一个粉红色的主题了 |
![]() | 87 ndxxx 2023-05-10 13:06:18 +08:00 很好的分享。不过这个配色真的护眼吗,我多年体验下来开箱护眼的 theme 基本都是 solarized light 这样的配色。 |
88 Oneshu 2023-05-10 15:29:29 +08:00 via iPhone 喂~不是所有基佬都喜欢紫色好伐 |
![]() | 90 skoofancy OP |
91 jackyxie1 2023-05-11 10:20:27 +08:00 我就想知道 github 的贴图里面的字体是什么字体 |
93 james122333 2023-05-12 21:34:28 +08:00 |
![]() | 94 chancat 2023-05-14 18:34:26 +08:00 via Android 好家伙 |