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

主动放弃使用了十年的编辑器之神 Vim

  •  9
     
  •   skoofancy · 346 天前 · 13708 次点击
    这是一个创建于 346 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是从 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

    94 条回复    2023-05-14 18:34:26 +08:00
    ampedee
        1
    ampedee  
       346 天前 via iPhone   ❤️ 56
    vim 爱好者愤怒😡点进来,满意😃离开
    isaacyw
        2
    isaacyw  
       346 天前
    @ampedee 哈哈哈哈哈
    skoofancy
        3
    skoofancy  
    OP
       346 天前
    @ampedee 哈哈,看到你我也满意了
    fds
        4
    fds  
       346 天前
    标题党!
    兼容的编辑器可真多。
    好粉嫩……
    hanswu
        5
    hanswu  
       346 天前   ❤️ 2
    VsCode 上已经安装了大佬的主题,颜色没有那么的亮,并且背景又粉又紫的(很烧),目前使用很舒服
    ChrisFreeMan
        6
    ChrisFreeMan  
       346 天前   ❤️ 4
    来不及收刀了,厚葬友军
    weixiangzhe
        7
    weixiangzhe  
       346 天前
    着实标题党
    hronro
        8
    hronro  
       346 天前
    Neovim is VIM.

    Neovim isn't VIM.

    这就是 Neovim 最棒的两个特点。
    ixx
        9
    ixx  
       346 天前
    如果这算放弃的话那么我早就放弃了🤣
    应该第三、四次换电脑的时候就不按原生 vim 了 直接用插件了
    ck65
        10
    ck65  
       346 天前
    支持一键包,有空了试试。目前在用 [NvChad]( https://nvchad.com)。
    anson0370
        11
    anson0370  
       346 天前
    怎么办,我也有点想用 neovim 了。可我不会啊 🤣。
    alfa
        12
    alfa  
       346 天前   ❤️ 23
    标题党,祝你 esc 失灵
    vast0906
        13
    vast0906  
       346 天前
    很烧,vscode 已经换上了
    skoofancy
        14
    skoofancy  
    OP
       346 天前
    @ck65 我也去学习一下
    skoofancy
        15
    skoofancy  
    OP
       346 天前
    @alfa 可以再买一个脚踏板的 esc ,双保险
    rzdCG
        16
    rzdCG  
       346 天前
    我就猜是 nvim 哈哈
    skoofancy
        17
    skoofancy  
    OP
       346 天前
    @hronro 看得见部分还是 vim ,看不见的地方就不是 vim 了,对吧?哈哈
    skoofancy
        18
    skoofancy  
    OP
       346 天前
    @rzdCG 聪明 body
    skoofancy
        19
    skoofancy  
    OP
       346 天前
    @rzdCG 聪明 boy
    alexsunxl
        20
    alexsunxl  
       346 天前
    历史很快会再次上演。
    当年 vim 干翻 vi ,估计过不了几年,nvim 要干翻 vim 了。
    Huelse
        21
    Huelse  
       346 天前
    试了下你的 vscode HardHacker 主题,light 的线条感觉不错,字体颜色能深一点就更好了
    beyondgamp
        22
    beyondgamp  
       346 天前 via Android
    非常不错 学习
    anytk
        23
    anytk  
       346 天前
    说的我也有点想切 nvim 了,列入计划
    zoffy
        24
    zoffy  
       346 天前
    上个月就安装了,非常好主题,成功替换了我使用了四、五年的 Over Night Owl 主题,唯一的遗憾是 Darker 背景色还是有点亮
    itskingname
        25
    itskingname  
       346 天前
    neovim vs spacevim vs vscode

    大家觉得哪个更好。
    thiswind
        26
    thiswind  
       346 天前
    neovim 不还是 vim 嘛

    不过我现在用 vscode 基本替代了 vim 了,包括远程连服务器我都用 vscode 了
    Snail5956
        27
    Snail5956  
       346 天前   ❤️ 1
    试了一会发现还是有点刺眼,还是切回我的 Noctis Azureus ,你这个和 Noctis Uva 有点像,但是字的亮度和背景对比度比较高。
    air00dd
        28
    air00dd  
       346 天前
    Vim 也在以不同方式多路径迭代👍
    liuxu
        29
    liuxu  
       346 天前   ❤️ 1
    没有理由不用 doom emacs
    hronro
        30
    hronro  
       346 天前
    @skoofancy #17
    你去看看 Neovim 的 commit ,他现在还在不停地 merge 上游 VIM 的改动,所以你要说 Neovim 不是 VIM ,我是不认同的 😅
    fengjianxinghun
        31
    fengjianxinghun  
       346 天前
    试了下配置,包全部得用 git clone 下来,几乎很难一次性成功,然后只能删了.local 重来
    anson0370
        32
    anson0370  
       346 天前
    @Huelse 谢谢你的建议。VSCode 的 light 版本目前算是 beta ,应该还会调整。现在 light 版的彩色都差不多卡在 4.5 对比度(也就是 WCAG AA 标准上),进一步拉高对比度(也就是要降低亮度)会进一步导致几种颜色之间的区分度下降。像粉色和紫色、蓝色和青色、蓝色和灰色之间会变的更难分清。另外也可能导致过不了色盲安全检查。
    所以我就很纠结。我想可能可以对出现频率较高的其中部分颜色做一下调整。
    fengjianxinghun
        33
    fengjianxinghun  
       346 天前
    @fengjianxinghun 可以给 ensure_packer 函数加个 git 代理
    hanxiV2EX
        34
    hanxiV2EX  
       346 天前 via Android
    用 lazyvim 配置可以很精炼,

    https://github.com/hanxi/nvim-config
    skoofancy
        35
    skoofancy  
    OP
       346 天前
    @hanxiV2EX 有这个准备,迁移到 lazy
    wellerman
        36
    wellerman  
       346 天前   ❤️ 1
    不错,不过我平时主要用 emacs ,vim 的主要作用就是改 emacs 的配置和查看文件。
    skoofancy
        37
    skoofancy  
    OP
       346 天前
    @fengjianxinghun 有道理啊。。。我是长期开着系统代理,好像很顺滑。
    yuhangch
        38
    yuhangch  
       346 天前
    @alexsunxl 看我到老能用到几个字母的 vim 😀
    skoofancy
        39
    skoofancy  
    OP
       346 天前
    @wellerman 试试我们的 emacs 主题,不太擅长 emacs ,也不知道做到了什么程度。
    Leei
        40
    Leei  
       346 天前 via Android
    @wellerman 用 vim 改 Emacs 的配置,老 NTR 了😂,我也喜欢这么干,特别在 Emacs 的配置出问题的时候
    james122333
        41
    james122333  
       346 天前
    我改用 vi ,因为你现在使用的配置移植性都很差,只有该编辑器专用
    还有左边档案列表虽然所有 IDE 都这样做,但其实它能做的就是少少事情
    例如递迴寻找某些档案但是要排除一些删除,这种类似或其它操作无法的
    现在都是 vi way
    vthe
        42
    vthe  
       346 天前
    一开始以为是从 vim 转 vscode 了,原来是用了 Neovim
    另外 helix 也不错
    skoofancy
        43
    skoofancy  
    OP
       346 天前
    @james122333 回到用 vi 确实让我意外了。你说左侧的列表,我个人习惯来说并不是主要是用来找文件的,而是可以看到状态变化,比如文件本修改了,能够将 git 状态同步到上面,就很方便。至于查找文件有 telescope 这种更好用的插件。
    duke807
        44
    duke807  
       346 天前 via Android
    想当年,我放弃了 神专用编辑器

    一开始还没有完全放弃,但只用来给别人发来的代码转 utf8 编码,现在已经完全不用 emacs 了
    alexsunxl
        45
    alexsunxl  
       346 天前
    @vthe helix 插件系统还没定下来呢。rust 写的就感觉代码看的挺舒服的,还能 build 起来玩。
    据说要用 wasm 搞插件系统
    alexsunxl
        46
    alexsunxl  
       346 天前
    @skoofancy telescope 确实太强了。杀手级插件。
    加上 mason 开箱即用 lsp 。treesitter ,完全吸收了社区最牛的东西。真的是有东西。
    sumu
        47
    sumu  
       346 天前
    推荐 AstroVim ,用了一年多了,开箱即用。如果愿意折腾,也能方便的融入自定义配置
    NanFengxuan
        48
    NanFengxuan  
       346 天前
    谢谢 op ,已经用上了。
    ![vim]( https://s1.ax1x.com/2023/05/09/p9B0l9A.png)
    Huelse
        49
    Huelse  
       346 天前
    @anson0370 确实比较难衡量,但可以考虑阶梯对比度,例如常量关键词->类名->方法名这样递减,当然这又增加你的工作量了😂😂
    skoofancy
        50
    skoofancy  
    OP
       346 天前
    @NanFengxuan 强啊,我得开足马力继续完善了。
    skoofancy
        51
    skoofancy  
    OP
       346 天前
    @sumu Astrovim 做得很好,我也学习了一下,致敬啊。我也想做成 AstroVim 啊(虽然重复造轮子不好),好难,得靠大家支持。
    cocang
        52
    cocang  
       346 天前
    猛男粉配色,谁能拒绝啊
    wizardyhnr
        53
    wizardyhnr  
       346 天前
    早切换了,忘了什么原因。neovim 其实也兼容 vimrc 格式的配置,不想折腾 copy 到 init.vim 里就行了。我现在是 nvim+tmux ,多开两个 tmux 窗口显示输出模拟 IDE 。
    vhysug01
        54
    vhysug01  
       346 天前
    咨询大家个问题,用 vim 时候感觉不太方便
    vscode 操作的列模式和 ctrl-D, 试了几个 vim 包,都不如 vscode 操作顺滑
    james122333
        55
    james122333  
       346 天前
    @skoofancy

    以 vi 逻辑就是写个外部脚本直接 git status 看要做什么
    因为把功能留给外部实现(当然有些功能没办法 但没办法的功能都不是刚需)所以换编辑器可套用 我当初就是研究其它编辑器发现原来写的都不可用才意识到这问题
    至于找档案并处理是善用本身特性可以做的 呼叫 cp mv rm tar find 等命令就可以 这用法是 vi way
    Sharenruma
        56
    Sharenruma  
       346 天前 via iPhone
    没想过用 lazy.nvim 重新配一下插件吗?我前几天迁移完了,感觉还挺不错。
    jiangzhizhou
        57
    jiangzhizhou  
       346 天前
    我觉得像 java 这种 dependency 乱飞,micro services SOA 的用 vim 是不太方便的。
    第一份工作只能 ssh 写,tmux 感觉比 vim 更加黑科技。
    vs_code 越来越大起来了,感觉之后可能也变成和 jetbrain 一样
    james122333
        58
    james122333  
       346 天前
    ide 就几个功能比较重要
    查定义 查引用 重构名称 代码格式化 快速开启 全文检索 debug server
    这裏面应该就重构名称和 debug server 比较麻烦
    WispZhan
        59
    WispZhan  
       346 天前 via Android
    比起 neovim ,还是想等 helix 。
    Kaiv2
        60
    Kaiv2  
       346 天前   ❤️ 1
    万年 gruvbox 看习惯了。推荐下我打配置 写 java 的小伙伴可以试试我的配置 https://github.com/JavaHello/nvim
    skoofancy
        61
    skoofancy  
    OP
       346 天前
    @james122333 重构名称不麻烦了,除了 debug server 其他这一趴基本都是 lsp 的事情,现在都可以做得很好。debug 我认为是最大的短板比起一些 ide 。
    skoofancy
        62
    skoofancy  
    OP
       346 天前
    @Sharenruma 有啊,我在 readme 的插件部分标注,准备迁移到 lazy
    james122333
        63
    james122333  
       346 天前
    @skoofancy

    lsp 只有在公司用过 所以重构名称要考虑 这东西有时还会抽风
    maleclub
        64
    maleclub  
       346 天前 via Android
    你个骗子!你个标题党!你个骚货!....不过我就好这口,收藏了,明天部署起来!
    gugu33
        65
    gugu33  
       346 天前 via iPhone
    按个爪
    DigitalG
        66
    DigitalG  
       346 天前
    想请教一下,vim 配置(比如修改插件,重写一些 vim 回调)的一些方法。我自己也用 neovim ,也做了很多配置,全部迁移到了 lua 脚本上。经常碰到修改插件的情况,但是我大部分时间还是停留在利用 print 函数,然后看 vim 那个几行的状态栏。有没有什么方便的方法来进行调试 debug 呢?网上找了下,也没找到合适的内容。
    SpiderXiantang
        67
    SpiderXiantang  
       346 天前 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
    MetroWind
        68
    MetroWind  
       346 天前
    Emacs 用户飘过~~
    taine221
        69
    taine221  
       346 天前
    @alfa #12 小小抬杠一下,我是 ctrl + [ 反人类党 /doge
    taine221
        70
    taine221  
       346 天前
    @MetroWind #68 +1
    Emacs + Evil Mode 我是神用神的编辑器 /doge
    mattxlee
        71
    mattxlee  
       346 天前
    看了一下你的 plugins 列表,有个问题。既然已经有了 lsp 的一系列的支持,为啥还要单独安装 rust, go 的插件?
    另外推荐 lazygit 。
    ZeroW
        72
    ZeroW  
       346 天前
    支持,另外 lazy.nvim 和 NvChad 也很好用,可以横向对比一下
    Chingim
        73
    Chingim  
       346 天前
    @james122333 对我来说, 左边文件树还挺有用的. 我有这些高频使用场景:
    1. 在某个文件夹下创建文件
    2. 移动某个文件
    3. 重命名文件
    4. 直接打开某个路径的文件. 有时候文件名是一样的, 只是路径不同, 这种场景我不想用 telescope 来查找
    ufo5260987423
        74
    ufo5260987423  
       345 天前
    用 lunarvim 的路过,也是 neovim 的一个配置
    fortitudeZDY
        75
    fortitudeZDY  
       345 天前
    emacs 老用户漂过,你们 vim 用户玩的 high 就好 :)
    xiaket
        76
    xiaket  
       345 天前
    翻了一下 git, 发现自己是 16 年就切到用 nvim 了...
    archxm
        77
    archxm  
       345 天前
    放心,你会回来的。
    wqzjk393
        78
    wqzjk393  
       345 天前 via iPhone
    mac 终端不支持真彩色啊,这个做了优化么?
    Befehishaber
        79
    Befehishaber  
       345 天前
    @alfa 笑死
    zhengzhongzhao
        80
    zhengzhongzhao  
       345 天前
    啥 rust 项目
    akring
        81
    akring  
       345 天前
    友军厚葬
    itfanr
        82
    itfanr  
       345 天前
    我以为投靠 vs code 了呢。。。
    psklf
        83
    psklf  
       345 天前
    go/neovim

    Please
    yangxin0
        84
    yangxin0  
       345 天前
    紫色的主题,有点晃眼睛。
    freefcw
        85
    freefcw  
       345 天前
    主题有点太骚了……vscode 下吃不消
    bthulu
        86
    bthulu  
       345 天前
    能不把所有颜色变量统一到一个配置文件里, 这样我就能搞一个粉红色的主题了
    ndxxx
        87
    ndxxx  
       345 天前
    很好的分享。不过这个配色真的护眼吗,我多年体验下来开箱护眼的 theme 基本都是 solarized light 这样的配色。
    Oneshu
        88
    Oneshu  
       345 天前 via iPhone
    😢喂~不是所有基佬都喜欢紫色好伐
    skoofancy
        89
    skoofancy  
    OP
       345 天前
    @psklf 收到,敬礼
    skoofancy
        90
    skoofancy  
    OP
       345 天前
    @freefcw 我以前一直用 one-dark ,这么骚的,用都没用过,更别说做一个了。

    这个配色来自团队的基佬,我被强迫用几天后,感觉很香了。哈哈哈哈哈
    jackyxie1
        91
    jackyxie1  
       344 天前
    我就想知道 github 的贴图里面的字体是什么字体
    skoofancy
        92
    skoofancy  
    OP
       344 天前
    @jackyxie1 jetbrains mono ,不过我又换到 victormono 了
    james122333
        93
    james122333  
       343 天前
    @Chingim

    然而熟命令行后这简单的都可以 vi command mode 有档名补全
    chancat
        94
    chancat  
       341 天前 via Android
    好家伙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1210 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 23:54 · PVG 07:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.