就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为此问题可以改进并可能重新打开,请访问帮助中心获取指导。 9年前关闭。
我大约在 5 年前开始编码。我是通过 Java 和 Eclipse 介绍的,它们在编程社区中都有相当大的污名。我目前在公司实习的一些人更喜欢 emacs 或 vim。我看不出一个基本的文本编辑器是如何比一般的 IDE 更快或更容易的,尽管我很欣赏一些东西,比如从命令行构建往往更快。
这是“老男孩”俱乐部的情况,还是以这种方式编写项目更有效率?
你能提供一些用例来演示吗?如果我提倡 Eclipse,我会说重构和自动完成是非常方便的工具。
加夫
Vim / Emacs
非常快速/高效的代码编写
低内存占用
快速访问命令行
通过脚本/插件提供无限可能
永远不必离开键盘
蚀
适用于多种语言的全功能 IDE
强大的重构支持
他们全部
跨平台
功能丰富
可通过插件扩展
我通常发现自己通过 vim
编写大量代码并通过我的 IDE 执行调试任务。熟悉代码库当然是一个因素,因为 IDE 是跳来跳去和学习不熟悉的源代码的好工具。
我开始使用 Eclipse 等 IDE,但大约 2 年前切换到 Vim。
您可能想要使用文本模式编辑器的原因:
它可以用作几乎任何语言的 IDE(您只需学习一次,就可以将其用于任何事情)
它可以完成所有这些花哨的事情,例如自动完成、重构和许多更复杂的操作,您可以通过添加宏或插件来扩展这些操作
它几乎可以在任何地方使用(并且可以通过 SSH shell 使用)
您不需要 GB 的内存来运行它
如果你真的持之以恒,你会发现在这样的编辑器中工作最终会更快,而且实际上会成为一种根深蒂固的“肌肉记忆”。这意味着您可以在不放慢速度思考过程的情况下进行编码。
论点“Eclipse for Java”与“Eclipse for [something that is not java]”是不同的论点。 Eclipse 确实适用于 Java。
我的意思是,vi 就像一把螺丝刀,或者可能是一把瑞士军刀,而 Eclipse 就像一个大型 CNC 组合铣床和沥青撒布机。你不完全比较它们,你只是使用两者。
此外,您是否在某个您知之甚少但 Eclipse 了解的巨大事物中工作?一个例子是在 Eclipse 本身上工作。在这里,Eclipse 具有完美的可见性、全面的语言支持,并且您需要 toast 提示和文档链接。
但是,如果您正在输入一个 100 行的 Ruby 程序来转换 SQL 数据库,那么 Eclipse 并没有增加多少价值,尤其是考虑到它的包袱。
正确设置 vi 也很重要,否则您将无法理解它的吸引力。应设置自动缩进、显示匹配、制表符处理和各种其他选项。您应该有一种简单的方法来生成标签文件。 Google 可以找到标签生成器,或者只是从头开始编写一个,只需几行 shellcode 和 sed(1)。
我不认为重构是一个标准。这不是你每小时甚至每天一次做的事情。当然,在需要重构时启动大型 IDE。哦,不要指望自动重构除 Java 之外的任何东西。
最后,vi其实可以做很多IDE不能开始做的事情。分组正则表达式全局替换是一种通用的重构引擎。要欣赏 vi 格式塔,您需要学习行 (":") 模式。简而言之,这就像在编辑器中使用 sed(1)。
这完全取决于您想要/期望什么以及您的使用模型是什么。
如果您正在寻找 Java IDE,Eclipse 很难被击败。它是由 Java 人员用 Java 为 Java 编写的。
如果您正在寻找从命令行快速编辑文件的工具,Emacs 或 vi 都适合您。
如果您正在寻找一种您永远不必离开的工具,因为它可以做任何您想做的事情(发送/阅读邮件、管理项目、待办事项列表、编译、调试等),那么 Emacs 更适合“高效的”。
如果您正在寻找更换编辑器的理由,请弄清楚您想要什么。如果您想要更好的 Eclipse,vi 和 Emacs 不会给您,请坚持使用 Eclipse。
如果您正在寻找一个小巧灵活的编辑器,vi 将符合您的要求。
如果您正在寻找最终可扩展的编辑器,那么 Emacs 就是您的最佳选择。
无论您决定使用哪种工具,都让自己沉浸其中。了解所有细节,扩展它以满足您的需求。将其发挥到极致并提高使用效率。
Emacs 可以是一个强大的 IDE,但是从 Emacs 到 Eclipse,我不得不说我再也不会回去了。 Eclipse 只是提供了许多您在 Emacs 中无法获得的特性。
我正在使用的数据和文件的 Mylyn 和范围视图、调试 UI、CVS UI 都是内置的,并且易于获取和使用。我会用一点鼠标来获取它们。
第一件事。 VIM 在编程方面比 Eclipse 更有效率。你在 VIM 中的个人生产力可能很糟糕,但 VIM 的潜在上限要高得多。这是事实。
VIM是一门武术。第一次使用时感觉不自然。你甚至不能让它工作。需要多年的实践才能逐渐变得富有成效。一开始你专注于掌握一些细节。慢慢地,你掌握的所有这些位加起来,直到文本毫不费力地从你的指尖流到屏幕上。让你的同事叹气的复杂编辑会在他完成呼气之前从你的手中跳出来。很少有人会使用VIM。能高效使用它的人越来越少。你可能一辈子也遇不到大师了。但据传它们存在。
VIM 旨在让您的双手保持在本垒打。把你的手从键盘移到鼠标上是令人沮丧的。这是一个粗大的运动。移动你的手臂会产生一种损害你动力的生理效应。使用 VIM,有人可以将您的手腕固定在键盘上,您仍然可以轻松地打开文件、拆分窗口、打开选项卡、构建项目、搜索/替换、更改字体、更改颜色等。一切都以闪电般的速度进行。
VIM 是模态的。这意味着您不必在按住 control+shift+Key 的情况下进行复杂的组合键。从长远来看,这会伤害您的手。相反,您执行命令。由于模态性质,不需要键组合。
我们像计算机一样将数据存储在内存中。我们的记忆一次只能保存几个值。看看在它们开始溜走之前你可以在脑海中记住多少个不同的整数。我们通过写下东西来克服这种人为的限制。如果数据从我们的记忆中消失,我们可以很容易地查看我们写下的内容以将其取回。如果你的时间花在大运动上,那么你就失去了原本可以花在处理大脑数据上的时间。您希望自己的思想毫不费力地流到屏幕上。这听起来可能不多,但 VIM 能够毫不费力地将您的想法转移到屏幕上,这极大地提高了生产力。很难用语言表达我想说的话。
VIM 支持代码完成。基于文本和查找。它可以从多个文件中提取文本。你想要的任何东西都可以在 VIM 中得到。要么自己做,要么用别人做的东西。
VIM 支持使用 ctags 进行定义。您还可以找到一个项目的所有参考。同样,你想要的任何东西都可以在 VIM 中得到。
VIM 的脚本非常庞大。您可以下载或创建数千种配色方案并立即更改颜色。尝试在 Microsoft Visual Studio 中更改字体或颜色,它会在加载数据时挂起 20 秒。它不会让你存储配色方案,每次你想要改变风景时,你必须花 30 分钟调整颜色和字体。在 VIM 中,您可以将行距设置为零以适应屏幕上的更多代码行。我得到了80多行。 Visual Studio 每行使用 2 个像素的间距,你不能调整它!!!更少的行=更多的滚动=更少的生产力=被迫使用小字体来获得更多的行=眼睛疲劳。
拆分窗口在 VIM 的 instnat 中打开。当您需要查看远离您输入位置(或不同文件)的代码部分中的数据时,它很有用。您不必花时间调整窗口大小,或担心 GUI 窗口相互重叠和相互落后。可以在选项卡中打开不相关的代码窗口,不占用屏幕空间,但允许快速切换。
VIM 作为 IDE:http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM 复仇:http://www.youtube.com/watch?v=lQNFfhC4QI8
多年来我一直使用 vi 来编辑各种语言的代码,我真的很喜欢它。但是我发现像 Eclipse 这样的 IDE 更适合 Java 开发,现在我几乎完全倾向于在 Eclipse 中工作。我不时放弃使用 vi 进行一些专门的活动,例如批量插入版权声明,主要是那些处理某些在 Eclipse 中不能很好自动化的死记硬背编辑的活动。当我只想查看源文件而不等待 Eclipse 打开时,我还将我的 Windows .java 文件类型映射到 vi。
Eclipse 中一些吸引人的特性是:
方法名补全
错误高亮
弹出 javadoc 注释
重构
我确实发现它总体上比 vi 更有效,所以你应该尝试一下,看看它是否也适用于你。
我记得在某处读到过一项研究,该研究表明人们认为键盘快捷键比鼠标更有效,但实际上并非总是如此。
另一个心理影响是我们重视昂贵的东西,即由于 Emacs 更难学习,它在某些方面一定更好。
我认为这些影响可以解释很多人对 Emacs/Vi 的极端喜爱。
但是,在 Eclipse 的情况下,我发现它可能非常慢,甚至偶尔会崩溃,但一般来说,这不是针对 IDE 的情况。
我经常使用 Eclipse、VS 和 Emacs。我也会使用 TextMate,但我没有 mac 了。这取决于我在做什么,更具体地说,什么系统最能支持我的语言和工具。
我知道有些人花更多的时间来编写编辑器,而不是花在做有用的事情上。他们中的一些人甚至承认自己只是为了挑战而这样做。其他人经常声称 Emacs/Vi 可以比 IDE 做更多的事情,因为它们是可编写脚本的。好吧,大多数 IDE(包括 Eclipse)也可以编写脚本。从这个意义上说,几乎所有编辑器都是等效的(尽管我承认,有些编辑器比其他编辑器更容易编写脚本)。
如果你喜欢 IDE,我的建议是继续使用。没有一个真正的编辑器。
编辑:
This 似乎是 Nick Bastin 所指的文章。我同意它远非确定的来源。但是,我仍然认为我关于感知生产力和实际生产力不同的观点仍然成立。
这取决于语言。
对于 Java 或 .NET,请使用 IDE(Eclipse、Netbeans、Visual Studio...)。
对于几乎所有其他语言(C、C++、ruby、python、haskell、lisp...),我认为 vi 和 emacs 更好。
vim/emacs 提供的效率主要是通过大量使用键盘来提供的。在这些程序中,您可以直接从键盘执行大多数操作,而不必停下来使用鼠标。
我想说,就它们提供的快捷方式而言,实际的 vim/emacs 编辑器远远优于 Eclipse 文本编辑器。但是,我完全同意你关于重构的看法。
大多数人必须编写脚本来完成 Eclipse 能够进行的那种级别的重构。我认为其中一部分是吹嘘自己的权利,或者人们只是以他们一贯的方式来做这件事。
touch
以最快的速度更改它。
我会随时选择emacs而不是eclipse。我还不得不说,赤裸裸的 emacs 并没有那么好,但经过一些调整,你永远不会想放手。特别是我会告诉你emacs在写我的硕士论文时是多么的有帮助,这应该清楚为什么Eclipse是劣等的,只是因为它不那么通用。
我的硕士论文是用以下编程语言写的:C++、Python 和 R。作为补充,我必须写论文,为此我使用了 LaTeX。此外,我不得不编写一堆 shell 脚本和 cmake 脚本。你猜怎么着? Emacs 对这一切都有很好的支持。特别是,很高兴与 AuCTeX 一起制作 LaTeX 文档。然后,Emacs 为使用 R 提供了出色的 ESS 模式。同样,它为 python 提供了便利。一旦我有了用于构建 C++ 代码的 cmake 脚本,我只需要从 withing emacs 调用 compile 就完成了。 Eclipse 不能完全做到这一点,因此您需要学习使用许多不同的程序。做笔记?有组织模式,这很棒!
然后,我的程序需要一台功能非常强大的计算机(不像任何笔记本电脑)。所以,我可以在 emacs 中远程做所有事情!!!!使用 tramp,我发现自己在我一直使用的同一个良好的本地 emacs 窗口中对 R 代码进行远程交互式评估、远程编译、执行和调试 C++ 代码以及所有内容。相比之下,我的朋友们在开发旨在在另一台计算机上运行的软件时,使用单独的工具来完成所有事情的速度要慢得多。
像这样我还有一些其他的故事,但我认为,这会让你对 Emacs 可以做的事情有一个很好的了解。总而言之,我认为选择使用 emacs(尽管有学习曲线)是我做过的最有成效的决定。
希望能帮助到你。
我们最近在工作中遇到了这种争论。我的看法是,我离不开的一个特性是 Emacs 的自动完成功能。 Eclipse 的自动完成基于句法分析——代码被解析,并且当您键入代码时,您可以选择完成。 Emacs 的自动完成功能基于简单的文本分析。这意味着它可以在纯文本、评论、文档中 - 无处不在。我一直说 Emacs 的自动完成功能是 IntelliSense 长大后想要的。
更新:
Eclipse 确实提供了 Alt-/,它应该类似于 Emacs。不过,不确定它的效果如何。
我更喜欢 IDE 的唯一地方是用于调试。我为调试设置了我的 vim 环境,但使用起来非常痛苦,非常笨重,以至于我现在需要调试时才切换到我的 IDE (Netbeans)。 vim 非常适合文本编辑,IDE 非常适合更复杂的东西(例如调试和一些项目管理相关的任务)。
像上面的一些帖子一样,我从 IDE (Eclipse) 开始。从那里我搬到了 Emacs,然后我又回到了富文本编辑器 (TextMate)。
对我来说,效率是在界面级别拥有编辑器的能力。允许我将我已经建立(或其他)的其他服务集成到我的伪 IDE 环境中。
不定期副业成功案例分享