...或者说vi/vim只在非Windows操作系统上开发时使用吗?
如果不是这样,那么vim提供了哪些现代IDE(如Eclipse)没有的功能?为什么在Windows工作站上进行Java开发或某些编译语言开发时会选择使用vim而不是Eclipse(或IntelliJ、Websphere或其他功能丰富的IDE)?请注意,我指的是Java开发和某种程度上的编译语言开发,而不是shell脚本或其他形式的脚本。
...或者说vi/vim只在非Windows操作系统上开发时使用吗?
如果不是这样,那么vim提供了哪些现代IDE(如Eclipse)没有的功能?为什么在Windows工作站上进行Java开发或某些编译语言开发时会选择使用vim而不是Eclipse(或IntelliJ、Websphere或其他功能丰富的IDE)?请注意,我指的是Java开发和某种程度上的编译语言开发,而不是shell脚本或其他形式的脚本。
Java是一门非常复杂的语言,我想不出一个人能够记住JDK中甚至内置类的所有方法参数和返回类型。由于Java可以通过JavaDoc注释实现自我文档化,并将其转换为手动页面翻阅似乎没有意义,因为你可以使用像Eclipse这样的IDE来调用特定方法或类的文档。
简而言之,在使用(g)Vim时,除非你使用了某些扩展,否则你大部分时间都是盲目操作,必须在头脑中弄清楚大部分逻辑(或者,你正在使用screen(1)
,并在另一个终端上打开man页面)。
我非常喜欢Vim,但对于像Java这样更大、更依赖库的语言,我不会使用除Eclipse之外的任何东西。我的一个朋友曾经推测,如果没有智能IDE,Java开发几乎是不可能的,我完全同意。
fugitive
vim插件也可能比Eclipse更好。Eclim不是完美的(例如,尚没有C++文档),但它足以使(特别是Java)开发变得合理。 - mellow-yellowvim允许通过Telnet或SSH进行远程、轻量级客户端访问,而Eclipse则不行。你能做的最多就是远程桌面,这可能会不方便且速度较慢。此外,vim已经开发了很多年,有些人已经非常习惯这个环境。vim也非常快速,并通过众多按键命令使代码更易于控制,如果你是专家的话 :)
可以通过vim使用Eclipse的功能(参见Eclim -- http://eclim.org/),但这仍在开发中,可能不稳定或难以设置。
如果您在本地使用Eclipse,则可以获得非常快速的UI和许多强大的重构工具。然而,有些人喜欢简单的方式 :)
vi编辑器通常被*nix用户在命令行环境中使用,例如如果连接到Unix/Linux系统的唯一选项是通过telnet/ssh客户端。
如果您的客户机/桌面是Linux,例如Genome或KDE等,则始终会选择类似Eclipse的环境,这些环境提供了丰富的功能,例如创建和管理项目、连接代码存储库、轻松浏览多个文件和调试等。
但是,我知道一些vi或emacs的铁杆粉丝,仍然不可避免地会为所有实际用途使用vi或emacs。
vi或emacs是非常丰富的编程工具。您可以使用基于键组合的命令进行几乎任何导航和编辑。但是它们有点难以熟悉,即使您是专家,根据我的经验,在多个文件和大型项目上工作也很困难。
但是在Windows机器上使用vi非常罕见,如果有人这样做,我无法想象背后的原因。
请参考这个问题的答案:
尽管Vim有众多插件,但它无法与现代IDE的语言感知重构和编码能力媲美。
当你处理大型项目时,强大的编辑器是远远不够的。你需要能够浏览数百个类,找到所有用法、覆盖等内容。你需要能够轻松地重构代码。IntelliJ IDEA和Netbeans具有丰富的功能和快捷键,专门针对Java开发。Vim是一个很好的工具,但Java更适合使用IDE,并且你应该利用这一点。
我曾是一个忠实的vim用户,但现在已经转换到Eclipse。
Eclipse有两个vi插件/键绑定。一个是免费的,另一个是商业化的。我更喜欢商业化的插件:对某些事情来说更有效。
Eclipse可以做许多gvim无法做到的事情(或使它们更容易)。
编译/调试/运行。
设置构建环境。
Javadocs、代码自动补全等。
重构、源代码控制插件、代码组织。
项目设置等。与其他开发人员共享项目很容易。许多FOSS Java项目都有Eclipse文件,便于快速设置。
只是举几个例子。
下载 Windows 版的 gvim,它看起来与 Linux 版本完全相同。