emacs - Ist es möglich, mit vim Java zu schreiben?
世界只因有你
世界只因有你 2017-05-16 16:35:07
0
6
759

Ist das Erlebnis viel schlimmer als eine Sonnenfinsternis?
Wäre die Erfahrung, Emacs zum Schreiben von Java zu verwenden, nicht besser? :(

世界只因有你
世界只因有你

Antworte allen(6)
刘奇

这个问题你去问 100 个 vimer(我指的是真正懂 vim 的玩家,不是普通使用者),估计 99 个都会告诉你:“可以,但并不适合。”(这是普适的答案,你应该相信)

但总会有那么一个百里挑一的 genius 会做出 99% 的人做不出的事情来,比如说这位:http://www.lucianofiandesio.c...

那么他做到的事情能完美代替 Intellij IDEA 或 eclipse 吗?答案是:不能——不过这要看对谁而言,对少数人来说,他们并不依赖那些 IDE 有的,但是 vim 没有并且很难去实现的东西(或者说实现的代价有点不值得),所以他们依然可以用 vim 写 Java 并且写得比很多人都快都好。话说回来,IDE 用成精的人也不会比 vim 慢,更不要说现在 IDE 都可以实现大部分的 vim 编辑模式——但 vim 有一些好处是 IDE 永远也无法企及的,轻、快、服务器几乎标配、远程连接立即可用……你精通 IDE 也许只能干好一件事,你精通 vim 鬼知道你都能干些什么!

那么问题来了:你是这类人吗?以上答案 Emacs 基本适用,在改造无限接近 IDE 这件事情上,Emacs 还能做得更极致一些。

漂亮男人

曾经有一年时间做 Java Swing 开发,尝试过 2 个月时间脱离 IDE 转投 VIM 。
其实答案和楼上一样,也和大部分人一样:可以,但并不适合。
该折腾的插件,都折腾了,NerdTree、AutoComplete、Supertab、Snippets……
或许是本人对 VIM 的理解还不够深入,也或许是各种其它原因,但还是有以下几个方面不方便:
1. 文件切换不方便:虽然有 NerdTree,但在各种文件之间切换仍然不方便。不过可以用鼠标,但是用鼠标的话,还要 VIM 干嘛。
2. 代码提示不方便:Java 的第三方 Jar 包出了名的多,虽然手动更改了 AutoComplete 代码,能让其提示 Jar 中的函数,但经常抽风提示不出来。即使提示,也没有方法注释、方法签名(无论哪一款 IDE 都会有方法注释和方法签名的吧),熟悉的方法还好,如果遇到第一次用的 Jar ,只能乖乖查官方 API 了。
3. import 需要手动:用惯了 Eclipse 的一定知道,Ctrl + O,IDE 能自动帮助导入需要的包,如果有多个相同名称的 Java 类,还会提示。这一方面 VIM 暂时还没有这方面的插件(当然,如果有高人在,相信一定能开发出这样一款插件)。每次写完代码,编译时,都会出现大堆大堆的提示没有 import 。然后手动写 import 也是非常耗时的事情。
4. 新建文件不方便:IDE 中,会根据选择的新建文件不同,根据不同的模版生成不同的文件。但是在 VIM 中,新建文件就是一空白文本文件,所有代码都要自己填写完整。 J2SE 项目还好,如果是 Web 项目,各种痛苦会等着你。
5. 覆盖方法不方便:IDE 能够提示哪些方法可以覆盖,VIM 只能凭经验或者查询 API 了。

其实还有很多问题,只有折腾过的才知道。后来还是因为效率实在低下,又回到 IDE,不过好在现在的 IDE 都有 VIM 插件。
在真正开始 VIM 工作之前,本人可是花了 2 周时间来调试和折腾 VIM 插件。
只能说,其中的坑实在很多,慎入。

过去多啦不再A梦

@TroyLiu 你说的这些问题都不是问题,在我的配置中,这些问题完全可以解决,而且解决方案比IDE里面效果要好;
https://github.com/wsdjeg/Dot...

推荐一篇关于使用vim开发java程序的文章:

https://spacevim.org/2017/02/...

滿天的星座

别折腾了,推荐eclipseJetBrains

習慣沉默

可以,前提是Vunble那套东西你要玩的转

利益相关:重度vim使用者

Ty80

可以,光写代码完全不成问题。只要你牛B到不需要调试功能。在牛B的VIM配置,能搞出IDE的调试环境吗?

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage