@
skywind3000 #66
我来回复一下。
> 我强调的是 Vim 的扩展性
他要说肤浅,其实他这理解就是了。所谓的扩展性,现代一个稍微功能强一点的编辑器都能支持,还需要他去强调 vim 能扩展?其他编辑器就不能扩展? JB 系不能扩展?
> 肤浅的理解成 vim 能做哪些
所以,我们只看,最终你大费周章扩展一番后,功能能支持到什么程度,能就能,不能的就不能。这没有什么吹的。
> "Vim 只能做这些事情“
显然,任何扩展,特别是脚本扩展,都是有限制的,你不能超出编辑器脚本能支持的范围,或者说编辑器开放给脚本的能力。有些功能确实你一番扩展后,也只能支持到某个程度。
> 自己的 IDE 他也没弄明白
这也是他也肤浅的地方,另外一个回贴里我讲了怎么用 JB 系原生支持的 groovy script 去扩展,还没有提怎么开发 JB 插件去扩展。groovy script 能扩展到什么程度他知道吗?因为它可以嵌入 Java 代码执行,而 JB 系又是 JVM 语言写的,这个扩展性你们去想想吧,不考虑兼容性,你可以随意用 API 操纵 IDE 。
而 vimscript ,你没法扩展出没有开放给脚本使用的功能。
> 浮窗类型提示,包括 auto 类型
> 自动错误提示
这些是 LSP 支持的功能,其他编辑器也能,并不是 vim 扩展才能。所以,他想强调的是 Vim 的扩展性,自己写个脚本就能支持了,结果又得拿一些公共领域大家都能的功能来佐证?
哦,对了,JB 系现在是直接支持在 inlay hints 中显示 auto 实际类型,并不需要弹窗,而且由于实际类型可能比较长影响代码阅读,是可以折叠的。
他说 vim 9 支持 virtual text ,能支持到 JB 这个程度吗?
> 完全没理解 tasks 系统
> 看看 vscode 的 tasks 系统
> 不是大 JB 那种定义外部工具那么简单的东西
他可能也没理解或者不知道 JB 的 Configurations 是怎么回事。VS Code 缺乏 JB 那样的项目工程管理,所以搞了这个所谓的 task 来充数,正所谓功能不够,task 来凑。JB 有工程管理概念,比如 Build 什么的都可以有标配 Configurations ,并不需要手工配置的所谓的 task 去做这些事。目前看大部分 task 其实是一些命令执行,在 JB 中用 External Tools 替代就行;少量 task ,可以用 Configurations 。Configurations 定制性也非常强,可以配合其他界面功能、其他插件功能、甚至 groovy script 使用。
JB 中按双 Shift ,也可以输入名称直接执行。
> 大 JB 没有的任务系统不理解,还瞎扯什么实时代码检测
不太理解“没有”任务系统,与实时代码检查有什么关系?这是急了吗。
> 编译运行
> 这个功能叫做 linter
JB 这个功能是实时显示代码问题,综合了 Inspect 或 Analyze 的结果,分 Error 等级别,并不是简单的 linter ,linter 只是其中一部分。
他这贴图,只看到“实时”显示了问题,并没有看到实时检查,实时检查是边改代码边检查,甚至不用保存代码,写错代码马上提示问题、并给出修改建议,改对代码问题提示自动消失。建议贴这样的图更有说服力。
另外 lint 问题并不都是 Error 必改,也可能不是问题,能编译过代码也可能弹一大堆 lint 出来,改这种 lint 不会爽。
> “就是这么爽”
他可能缺乏里面描叙的开发体验,所以才搬出个 linter 来说事,实际写新代码过程中,没人去马上关注什么 lint ,只关注当前代码有没有写错能不能编译过,JB 的这个功能,就是让你实时聚焦改当前 Error ,全部修改写完后,再去编译代码文件一步通过;代码编译通过后,再去关注那些可能不痛不痒的 lint 什么的其他检查。
所以确实有些人“无知真爽”,以为能看到个 lint 结果就爽了。
> 还说自己是啥 "老 vim 党"
我用 vim 时,这些什么 lint 、LSP 等等都还没有呢。等其他 IDE 都用烂大街了,LSP 才兴起,一众编辑器 、vim 才能借助支持了个皮毛。
> 自动格式化
> 他完全搞混了
他找到 JB 这个功能在哪没有?这个功能就是“混用”的结果,一次性搞定格式化补全等等,而且因为理解语义,不用担心补全出错误代码。
vim 搬出这么多插件,混用都不一定能达到这个效果,估计不是冲突就是要挨个来触发。这可不是爱不爱用的问题。
> 自动帮助
> Vim 里浮窗显示文档
他要是看全了,就不会简单理解自动帮助就是浮窗显示了。
写代码时自动提示候选函数文档方便比较、文档链接跳转导航,是装作没看到吗?而且装个翻译插件,还能直接翻译英文文档。
> 大 JB 不支持,就傻眼了,只能嘴硬 “自己用不上”,
这该说什么呢?这是为抗而抗吗? JB 不支持的功能多了去,但 JB 系难道也不支持你去扩展?不支持你去写插件?我寻思写个插件也没什么难度啊,不想写插件,就用 groovy script ,直接 Java API 操作 IDE 。我们自己就开发了很多 JB 插件,从部署、调试、汇编等等。
> 远程编辑
> 在外网上百台服务器里跳来跳去,每台有需求就弄一下
这个只能说勇士,直接去改生产环境。几百个服务器你去 vim 几百次?
有没有一种可能,可以不用 Gateway ,JB 里面配置 Deployment 到测试 /开发环境,远程改好后再发布到生产环境?
都 2202 年了,裸奔上生产环境改代码的事还是少搞为妙,开发些工具或者使用成熟工具,大家都图个安心。