Vim或Emacs是否适用于.Net或Java等语言?[关闭]


18

因此,我主要是.Net开发人员,他不时使用Java,Python和其他一些工具。我听说很多人赞扬Vim和Emacs一旦确定了基础知识,就大大提高了效率。我可以肯定地看到,有足够的实践,其中有多少个功能可能非常有用,甚至相信学习曲线可能值得付出努力。但是...看来,您真的必须是某种宏和热键向导,才能像在Visual Studio,Netbeans,Eclipse或其他平台上的普通开发人员一样,在Vim或Emacs中高效。我已经开始学习使用Vim,并认为它的某些功能很棒(例如,列编辑),但是似乎重量级IDE所提供的许多工具根本无法替代,即使是最费劲的文本也无法购买。编辑。

  • 为Linq-to-SQL生成dbml文件
  • 自动化测试
  • 设计UI
  • 创建/组织项目和解决方案

我知道Vim和Emacs可以非常强大地完成VS可以做的很多事情(例如智能感知,重构等),并且它可以完成我提供的部分或全部示例,但是说起来很现实在这些平台上工作的人实际上会从Vim或Emacs中受益?


2
我们在我的商店中使用Eclipse工作,但是这里有一个人将Vim用作他的主要编辑器,而Eclipse仅用于编译和代码管理类型任务。
Michael K

Answers:


14

那里混合了各种概念,这也许不足为奇,因为VS将许多相当不同的功能结合在一起。一个引语(来自此站点)表明Emacs不是一个好的IDE,Unix是一个好的IDE。想法是,在Linux / Unix世界中,您依赖于可以很好地协同工作的多个专用工具,而不是一个可以完成所有任务的整体工具。

现在,我主要使用C#进行编程,并使用VS来实现。我也非常喜欢Emacs,并将它用于其他所有用途。现在,正如您所说,在Emacs中可以做什么以及在Emacs中可以做什么更好。但是在很多情况下,它不是一对一的映射,并且使用文本编辑器和/或其他工具可以通过不同的方式达到相同的目标。

我原本打算解决您的每一个问题,但是答案总是归结为某种形式的“是,您可以”。通常,您将依赖于以下任何一种:1)外部工具(如UI设计器)为您生成代码,然后将其导入;2)编辑器内部的自动化支持(例如Emacs中的Elisp代码),以自动化重复性任务;或3)您将调整为使用基于文本的工具,而不是视觉工具(例如,使用MSBuild并编写自己的项目文件,而不是依赖VS的设置)。

在Emacs世界中,您没有一个可以完成所有任务的工具,您拥有许多工具,并且可以根据需要增长更多的工具。我还不知道该怎么做,所以我使用VS,我对它提供的工具感到满意。VS是一个非常强大,非常好的IDE。现在,如果我正在使用Java,那么我将不得不辩论应该使用哪种工具,因为我不太了解Eclipse或IntelliJ。对于任何其他语言,Emacs几乎都可以胜出,因为它对我来说将比那些语言可能使用的任何其他文本编辑器或半成品IDE发挥更大的作用。(也许除了Smalltalk,但这是一个特例。)


6

但是说在这些平台上工作的人实际上会从Vim或Emacs中受益是现实的吗?

让我给你一个例子:我在很大程度上(但不是100%)用C#编码的系统上工作。无法从Visual Studio构建该系统-太复杂了。因此,我没有sln文件(有些人试图维护一个文件,即使我们不使用该文件来构建产品,但事实证明这是一项不可能的任务),并且没有智能感知,代码浏览,类图等。对我有用的工具是vim + ctags。即使这样也不是很完美(标签容易混淆),但是比使用不支持代码浏览功能的劣等代码编辑器更好。

现在,我了解到大多数.NET或Java开发人员所处的位置与我不同,并且如果IDE具有良好的代码编辑器或至少一个可改进默认代码的加载项,则最好使用IDE。对于Visual Studio,有诸如VsVim之类的附加组件,可以使编码体验更加有趣。与Eclipse AFAIK相同。


3

我怀疑还有很多人专门使用VIM或Emacs。但是我还没有找到一个不使用文本编辑器(无论是其中一个还是其他)的开发人员,因为它在某些方面(通常是许多方面)完全采用了IDE。

请记住,除了编写Java,C#或C ++代码之外,您的工作还有很多。有ANT脚本,makefile,XML文件,多种配置文件。对于许多小任务,该IDE的启动时间可能只是太长。Eclipse可能需要几分钟才能启动,与VS类似。要快速更改单个源中的内容,或仅检查已知文件中的内容,这太长了。在VIM中加载文件仅需几秒钟。


1
虽然记事本++。
拉斐尔

从未使用过它,但是确实看到其他人使用它(我是VIM笨拙的:))。
jwenting 2011年

2

我发现使用IDE和vim(我个人最喜欢的编辑器)不是互斥的概念。在进行.NET开发时,通常会设置一个热键组合,该组合将在vim中的IDE中打开正在处理的当前文件,并将光标放在同一位置。这样,如果我想做vim最擅长的事情(例如使用宏,垂直编辑,重新缩进,比较等),那么我会按组合键并敲一下,让我最喜欢的编辑器起来,我的更改,保存文件并退出,然后再次回到IDE(您可以对其进行设置,以便在VS中在IDE外部对其进行编辑时自动重新加载文件)。这样,我可以两全其美。

我曾经使用脚本语言以复杂的方式操作文本文件。一旦发现了使用vim宏(以及其他一些功能)的强大功能,我发现与使用脚本语言相比,我可以更快,更有效地进行这类编辑/操作。

对我来说,生成一个脱机脚本以使用vim做一些复杂的事情,执行我构建的shell脚本然后将其丢弃是很常见的。

我的2美分:)


是的,我玩弄了一些VS插件,要么将我跳入emacs,要么将emacs用作“代码编辑器窗口”,要么仅使用emacs键盘绑定。还没有爱过任何一个。弹出emacs并跳到相同光标位置的宏听起来很不错。我可能必须尝试一下。当我需要进行一些繁重的文本操作时,我主要只是在两者之间复制粘贴。
CodexArcanum'2

0

看一下OpenIDEContinuous Tests项目。第一个重点是向包括VIM和Emacs在内的任何编辑器添加.NET项目支持。另一个是类似于ruby的AutoTest / pythons Sniffer / Autonose的连续测试运行程序。它可以作为VS插件运行,也可以独立运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.