现在,你可能不再需要 NeoVim 了

作者: 一点五编程分类: 计算机技术 发布时间: 2024-02-08 01:07:55 浏览:15631 次

现在,你可能不再需要 NeoVim 了

J0yD1vision:
虽然这不是给新人安利,但是除非你有大量远程编辑需求,新人无脑选择neovim就行。不愿意换neovim的人大部分是肌肉记忆就是vim,甚至easymotion都不用,你如果用treesitter,flash形成肌肉记忆肯定比vim快的(不过flash还是要求动脑多一些)。因为neovim是用lua封装vim,所以vim某些功能新一点,但是你写插件也是lua更方便一些。vim插件社区不活跃也是因为他们不需要插件

【回复】回复 @SoEtSo :可能我默认在终端环境了,我想说的是:如果要在命令行选一款做主力编辑器,无脑nvim就好,另外社区里的活跃用户无论nvim还是vim大部分都在HEAD分支,不然怎么测bug出stable[妙啊],只不过vim人少冷清显得nvim浮躁罢了,插件两边都差不多,很少有作者提供稳定版的分支或者tag的,都需要用户自己pin住,脱离终端环境qs无脑vscode,emacs就算了除非你是lisp圣徒
【回复】我觉得想要当作主力编辑器可以无脑neovim,功能多社区活跃能还能兼容vim的插件生态,随便用用了解一下的话vim就好,毕竟预装
【回复】回复 @松TvT :与其说是Lisp教徒,不如说写Lisp除了Emacs就几乎没别的能用……Neovim最大的弊病就是插件代码完全裸奔,作者想怎么封装就怎么封装,而纯键盘的操作方式又特别需要配置;插件作者又都很有想法,各个喜欢绑一堆快捷键;结果就是实现一个特别简单的自定义快捷键都要翻本体和各个插件的manual甚至reference,花在上面的时间比编辑本身还多。Emacs就规范多了(尽管本质上还是裸奔),固定了frame、window、buffer、mode、hook、keymap等结构,配置时只需要对号入座即可。
乌兰巴托上单:
我用Neovim的原因和Neovim多出来的功能毫无关系,只是因为Lua速度比Vimscript快

【回复】回复 @dragondove :但是插件装多了之后NeoVim和Vim的启动速度就不在一个层次,甚至NeoVim有能够懒加载插件的神器
【回复】luajit虽然快,但是目前社区内的插件质量参差不齐,同功能你可能会发现不少插件还是vimacript版本更流畅些。
躺平魔王:
讲的非常的好,如果标题贴切些就更好了。

【回复】你这么一说好像是有点[笑哭],一般这种标题都是全方位对比,我是抓住一个我非常在意的小特性
fhzGuxNf:
jumpoptions=stack, 我也一直在用。但仅仅因为这个在vim、nvim间摇摆实在没什么说服力。 我则相反,我不再需要vim。 我选nvim而不回vim的理由如下: * lua。有成熟的lang server,可以做type annotation,语言使用经验可以轻松复制到其他软件中(我还在 awesomewm、fcitx5、rime、vifm、mpv 中用lua做配置、扩展) * luajit的ffi模块。因此我可以借助libnotify、libmpv、dbus扩展了nvim的能力边界;没有string.rfind时,我不会苦等官方支持,而是用c、zig实现再暴露给lua,当然这部分不必需ffi模块。 * 活跃、纯净的官方matrix room。国人的相关技术社区,我只能感受到熟人社交、大佬崇拜。 * treesitter。确实,喜欢的爱的不行,不喜欢的看都不看。语法高亮只是其部分应用,我更喜欢treesitter提供的ast访问能力,我可以轻易地实现text object、context breadcrumb、incremental selection、bracket pair、linter、folding ... * 最后,创造插件的乐趣。在我使用vim的黑暗时代(我是认真的),我只能全网讨饭,一切功能都要伸手要,从没想过简单的功能我自己都能实现。做减法以来,我现在还在用的第三方的插件剩两个:easy-align、surround。一切尽在掌握的感觉(可能是幻觉)太爽了。 相比之下,nvim劣势也有,但我大概不会用回vim;对于最基础的编辑需求,nvim显得臃肿笨重时,我选择用vi

【回复】不能说摇摆吧,只是因为这个,我短暂地使用了nvim,在vim支持它后回到了vim。我们兴趣点不一样。
峡雨:
neovim 对我来说目前的优势是lua和treesitter。lua远比vimscript友好。对于大文件,vim基于regex的语法高亮性能很成问题,而且要改动也很繁琐,一堆奇葩的语法。

【回复】嗯,Vim的语法高亮,性能确实存在问题,我以前写Erlang的时候,深刻体验过这一点[喜极而泣] 不过对主流语言还好,没体验过任何卡顿。
【回复】回复 @_hexh :实践证明一切,我用起来比regex好用就行。
【回复】以前用vim时安装了tpope的Markdown高亮插件,对于篇幅较长的文本,滚屏时候明显的高亮刷新滞后,换nvim+treesitter后再也没有这种情况。不过我最讨厌的还是vimscript,语法和性能都不好,我不清楚vim9script的性能提升有多少,但它不是通用的编程语言,花大量时间去学习感觉划不来。
Ayana-chan:
我用vim只用过裸的,完全没用过neovim,请问应该选啥比较好,以及可以做到在vscode或者jetbrain里面使用吗

【回复】回复 @gtseiljeu :这倒没什么 不如说 其实ide在这种地方做的比vim更好
【回复】回复 @一点五编程 :不是配置问题 仅使用快捷键模拟的假vim 跟vim有本质差距 vim的u和vscode的ctrl-z之间是有鸿沟存在的
【回复】回复 @b1ueb1ues :我的配置比较简单,mapping 能通过读.vimrc正常载入解析,用着没什么问题。(vscode的vim插件有一个选项,可以读取.vimrc配置)
Wanderful闲云:
有意思。我一直都是<c-]>,<c-t>跳转定义,然后重要的地方mark一下。看起来 jumplist更有效率,我觉得值得一试。

【回复】是的,但是一定要设置一下 jumpoptions=stack,默认行为不合适 [抱拳]
懒惰的小子:
用过2年多nvim,最近换回vim了,还是vim舒服

fanhed:
vim支持jumpoptions了?bram健在的时候,一直不接受把jumplist的逻辑改为跟现代的浏览器一致,真是令人唏嘘[笑哭]

【回复】[笑哭] 原来还有这种事情
AI视频小助理:
一、Windows中重要的知识点——jump list,它记录了光标跳转的历史,方便用户快速定位。通过实验,展示了如何使用jump list进行跳转。 00:01 - 介绍跳跃列表的作用和历史记录 00:39 - 通过跳跃列表记录光标跳转的位置和记录 02:43 - 按下控制键可以跳转到相应的记录,方便操作 二、LIM中浏览器历史记录的处理方式,以及在win9.1之前的历史记录跳转逻辑,与传统的处理方式有所不同。 03:00 - 浏览器历史记录会删除后面的记录,所以应该删除后面的记录 03:54 - 在Windows 9.1之前,可以通过set和option job Set jump option来清除记录并添加新的记录 05:50 - 传统的做法是将跳转过的记录移到最后一行,然后将新记录添加到第一行 三、JUMP LIST的功能和使用方法,并演示了如何在浏览代码时避免混乱。NEWBEAM编辑器支持JUMP OPTIONS,可以提高代码浏览的效率。 06:01 - JULIST的设计合理,但浏览代码不方便 07:01 - 演示如何使用跳转选项来浏览代码 08:44 - Jump options支持比较晚,但使用方便 四、如何在Windows系统中设置自动登录,并比较了使用New Beam和不使用New Beam的优缺点。建议重度Windows用户实践并搞清楚这个设置。 09:01 - 设置成stack对看是唯一的选择 09:28 - win用户需要搞清楚这个东西,可能不需要new beam 09:51 - 今天的分享结束,谢谢大家 --以上内容由模型基于视频内容生成,仅供参考

【回复】看来吐词不够清楚[笑哭]
二十四在路上喝酒:
还真是不断有人发现新的东西,不过这种怎么感觉那么还是靠记忆来实现跳转,简单一点大可以使用mark的方式,不过目前至少neovim上还是有bug的,标记是不被清除的,所以每次打开同一个文件标记就依然存在,不过好在可以加一点配置消除。

【回复】jumplist 不是通过记忆,mark才是通过记忆。jumplist类似浏览器上的历史记录那种模式[呲牙]
【回复】回复 @一点五编程 : 超过两次的ctrl o / ctol i ,我都觉得过于多余,当然可能是习惯有关哈。对于mark标记可能更能固定跳转位置。
【回复】回复 @二十四在路上喝酒 :[喜极而泣]还是看需求吧,比如查看一个函数的调用链,总不可能用mark把每一个地方都记录下来吧,那思维负担太大了
rennsax:
一个 jumplist 新功能可能还不构成回归 vim 的充足理由 🤔

【回复】看来是插件重度用户[doge]

编程 NeoVim 编辑器 命令行 Linux Vim

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!