为什么选择Emacs / Vim / Textmate? Xcode不够好吗?

时间:2009-03-16 01:53:32

标签: objective-c xcode vim emacs textmate

您好我主要做C ++,Objective-C编程。我发现Xcode加上一个自动完成/宏插件(完成字典)就足够了。

然而,所有人似乎都赞扬他们的纯文本编辑。我尝试了一下Textmate;喜欢它的简单,但不喜欢它的文件/框架处理。

我在这里遗漏了什么吗?或者,Vim或Emacs是否具有与Xcode一样好的自动完成功能?

21 个答案:

答案 0 :(得分:183)

拉起一把椅子的儿子,让我谈谈这个。

在Xcode时代之前,有VIM和Emacs。我知道这很难想象,但这是真的。

许多人已经习惯了VIM / Emacs,因此继续使用它。

Emacs非常可定制,并提供您可以想象的几乎所有东西(包括内置收缩和河内塔)。您可以轻松地从Emacs调用编译器,并根据需要创建自己的扩展。

VIM拥有令人难以置信的正则表达式引擎(Emacs也可以)并且非常方便,因为(VI)几乎每个Unix操作系统都有,并且如果你没有箭头键(是的,真正的老派),它可以很好地工作。人们非常善于使用键移动文档,而无需使用鼠标。

Emacs也是如此,但对我来说,我发现VIM上的光标动作更容易。

文本编辑器的战争与Mac与PC战争一样充满了宗教狂热,而答案就是挑选最适合你的人。如果你喜欢Xcode,那就好了,继续使用它,但是如果你被迫在PC或Linux机器上工作,那就太好了。就个人而言,我使用Emacs编写代码,使用VIM操作文本,使用Firefox查看lolcats。

答案 1 :(得分:15)

当人们谈论文本编辑器时,我真的不明白为什么emacs会起作用。根据我的经验,它更像是eclipse(或其他平台/ IDE之一),而不是vi,因为 环境,恰好擅长文本编辑。

作为IDE,emacs具有版本控制,实时编译,拼写检查,自动完成,调试,代码浏览等功能,适用于各种SDK。对于您的其余计算需求,它是一个电子邮件/新闻/ web / irc / twitter / xmmp客户端,日历,组织者,计算器,终端模拟器,远程编辑,拼字游戏,游戏等等。

在Dijkstra之后:“Emacs不再是关于文本编辑而不是天文学是关于望远镜的”

答案 2 :(得分:11)

你缺少的是Emacs和Vim实际上是IDE。

答案 3 :(得分:8)

vi在UNIX系统上无处不在,而Emacs几乎如此。 AFAIK,Xcode在一个平台上。

拥有一个强大的IDE是一件好事,但是每个人都应该具备一些技巧,以使它们能够在任何可能被放入的平台上运行。

答案 4 :(得分:5)

这完全取决于您的偏好。

有些人喜欢使用轻量级的文本,如(g)vim,emacs,pico等。 其他人喜欢使用像MS Visual Studio,Eclipse,Xcode这样的IDE。

只要您的环境与文本编辑技术兼容,这一切都取决于您。

顺便说一句,我喜欢使用Eclipse和vim,因为它们是我以前学习编程的东西;)

答案 5 :(得分:4)

您似乎认为像Emacs / Vim这样的人的主要原因是代码完成。像Emacs / Vim这样的人因为他们都是MADE编辑文本。您可以使用其他编辑所没有的控件和选项。一旦你真正擅长使用其中一个程序,你就希望这些键绑定/命令随处可用。宏,正则表达式,通过搜索/单词/段落/功能移动,与版本控制接口,复杂的撤销/重做以及复制/粘贴功能和扩展选项只是这些编辑真正做得非常好的事情。

代码完成只是可以使编写编程更容易的许多事情之一。 Emacs / Vim可以处理所有这些(本机或扩展)。

答案 6 :(得分:3)

不,不是真的。这真的是一个偏好的问题。我喜欢在Visual Studio 6中工作,但现在新版本太过臃肿了。因此,如果我可以在VS之外做一些事情,我通常不用打开整个IDE框就可以做到。

在Windows上我喜欢notepad2和gvim。我已经将vim定制到了完全符合我需求的地步,所以我不必考虑什么和在哪里。

但是,最好提一下(你也可以通过阅读这些帖子来解决这个问题)很多用户使用vim / emacs / ...'听到它最好/最酷的原因 - 因子/实际可用性。所以,如果它不适合你,请不要使用它。没有人会以错误的方式看你。

答案 7 :(得分:3)

我个人喜欢emacs。我使用过vim和一些IDE。 Vim和emacs都有很好的社区,人们愿意为几乎任何语言编写功能。我不知道任何支持Haskell的IDE。这一切都取决于对你来说重要的事情。两者都有扩展语言,虽然IMO,emacs lisp是两者中较好的。忽略鼠标的能力也是我喜欢的主要内容。如此多的IDE还具有emacs和vim兼容模式或扩展功能。他们都有大量的时间投资,但两者都值得。迟早,你会选择适合你的,vim / emacs / IDE,然后坚持用它来提高你的技能。

答案 8 :(得分:3)

对我来说,最重要的两个特征是:

  • Emacs键绑定,因为这是我的手指兼容的。

  • 开源,它提供的自由。绑在一个平台上是一种诅咒。

这些天我主要使用Eclipse进行编程(设置为Emacs键绑定)和FSF Emacs用于阅读邮件和一些偶尔的LaTeX。

答案 9 :(得分:2)

当您使用Emacs时,您可以安装Cedet或自动完成程序包以使用某些语言的名称完成(C ++非常好,而Obj-C仍然不受支持),此外还有丰富的编辑器功能< / p>

答案 10 :(得分:2)

emacs功能强大。我使用带有vimpluse.el的emacs,以便我可以将vim键绑定与所有emacs功能一起使用。

答案 11 :(得分:1)

我主要使用Vim作为输入模型。一旦你熟练掌握输入模型,回到编辑器,你被迫使用鼠标会感到笨拙,最终(至少对我来说)很烦人。输入“ci”以更改两个单引号之间的所有文本,然后将手从主行中移开,使用鼠标查找并选择文本并最终点击“删除”,效率会高得多。

我只是简单地使用了Emacs而我更喜欢Vim,我嫉妒它的一些功能。但我最终选择了Vim因为我找到了Emacs使用的和弦输入模型来给我的手指带来不必要的压力。

答案 12 :(得分:1)

我是一个很长时间的vim用户,发现我真的很喜欢用Vim仿真打开的Komodo编辑。因此,我得到了vim键绑定的所有便利(我已经习惯了,我最近生成的最近的MS Word文档不少于三个“w:s”)以及良好实现的代码完成C ++,Python,javascript等

我不使用XCode,因为我没有非常开发OS X特定的应用程序,因此OS X框架集成的好处不足以超过没有vim键绑定和“做”的成本它是我们的方式与否“苹果公司为发展而采取的方法。

答案 13 :(得分:1)

TextMate让我感觉更轻松。在我的头顶:

  1. 它非常支持在文件和文件中的方法之间跳转。想想Quicksilver的文件/方法。打开文件进行编辑,按命令shift-t打开一个浮动面板,列出文件中的所有方法。开始输入,列表会自行过滤掉。选择所需的方法,然后点击返回跳转到它。 Xcode有这样的东西,但刺痛匹配更直观。

  2. 大量内置文字扩展。键入触发器并单击选项卡以展开它。例如,在新行上输入m然后点击标签为您创建一个方法。然后,Tab键会智能地跳转到插入文本的各个部分,以便您可以就地编辑它们。这些都是如此巨大的节省时间,这太荒谬了。

  3. 对Subversion和Git的好插件支持。可能也是其他VCS。

  4. 完成(如Xcode)和历史记录。 TextMate允许您基本上完成文件中存在的任何文本。因此,一旦键入变量名称或方法调用一次,就可以使用tab在同一文件中的任何位置自动完成它。

  5. 智能过去的历史记录,漂亮的内置差异,主题支持,良好的键盘支持,查找文件和跨项目(使用RegEx)以及可能更多我忘记了。

  6. 无论如何,这对我来说已经足够了。

答案 14 :(得分:1)

我不使用vi来编写代码;但是,如果可以的话,我会在编辑器中使用vi仿真。当我在IntelliJ中进行Java编码时,我使用了IdeaVIM插件,它在IntelliJ的编辑器中为我提供了vi支持。这意味着我几乎永远不必将手指从主排上移开。我使用键盘(h,j,k,l)导航,使用yy,dd等剪切/粘贴。当然,当我确实需要功能完整的GUI编辑器时,vi仿真不会阻止我使用它们特征

它让我很震惊XCode在其编辑器中没有vi仿真。看起来像任何体面的IDE都应具备的功能。

答案 15 :(得分:1)

我有Xcode和TextMate但我不使用它们,虽然我知道它们可以非常强大。相反,我使用Vim(如果你愿意,还可以使用MacVim)。为什么?

因为它轻巧,快速,令人上瘾,功能强大,可定制...... 我可以继续这么长时间,但最重要的是我可以用Vim做我想做的一切。

无论你使用哪种编辑器,最好的编辑器都是你掌握的(几乎)完美的。

答案 16 :(得分:0)

就个人而言,我喜欢TextMate,因为它实际上是一个非常轻量级的解决方案。当然,我没有深入使用Vim或Emacs(我喜欢我的GUI)...虽然我非常喜欢基于控件的光标导航(Control-A是行的开头,Control-E是行尾,Control- F和Control-B是前进和后退等)。因此,在Xcode和TextMate之间,我使用Xcode进行大部分严肃的开发,但如果我只需要快速编辑源文件,我就可以在Xcode完成启动之前进行编码(这有助于TextMate记住以前打开过哪些文件)并恢复它们)。因此,对于一些轻量级文本编辑,TextMate是我的选择。

在此之上,TextMate的插件支持令人惊叹;它为Xcode不提供的许多不同的东西(shell脚本,CSS,SQL,LaTeX等等)提供了全面的支持(语法着色,构建和运行等)。当我需要用Java编写快速程序或调整网页时,使用Vim然后从终端进行构建要容易得多。

我对TextMate的唯一抱怨是控制台是只读的,所以我无法构建任何交互式的东西。这一点,以及它似乎不支持普通C文件中的C99关键字(for循环和布尔值)。

答案 17 :(得分:0)

Xcode更像是一个IDE,而emacs和vi则是纯文本(虽然它们有大量的扩展)。如果您使用的是较旧的系统或通过SSH,则此选项更为可取。此外,它们几乎在每台基于UNIX的计算机上,而XCode是专有的Apple软件。

答案 18 :(得分:0)

你可以查看我关于这个主题Why Emacs?的文章。虽然它或多或少以Emacs为中心,但其中的一些要点也适用于vim和TextMate。

答案 19 :(得分:0)

我很久以前尝试过vim,出于某种原因“我没有得到它”。经过多年来尝试其他编辑后,我达到了一个没有编辑似乎做我想做的事情的地步。在向朋友表达我的沮丧之后,他建议我尝试vim ....我很高兴我再看一眼,因为这是一个我不知道怎么问的问题的答案!从那以后我就用过Vim / MacVim ......

这里是我的配置: https://github.com/RandyMcMillan/QuickVim

我也使用Xcode,因为代码完成很好。 XVim对于想要Xcode编辑器中的模态/ vim感觉的人来说是个好消息: https://github.com/JugglerShu/XVim

但是当谈到我的日常编辑时,Vim每次都会获胜。这就是我拥有QuickVim仓库的原因,以便我可以随时随地快速重现我的环境。

我有一个像TextMate等编辑器的许可证列表。但是我可能永远不会使用它们,因为我可以免费使用vim并根据我的确切规格进行自定义。

答案 20 :(得分:0)

这里有重Vim用户。我一般认为Vi / Vim的文本处理能力远远优于传统的编辑器,这些编辑器缺少像:

  • 视觉模式:例如用注释//
  • 作为前缀5行
  • 宏:例如用引号括起第3到第5个单词,重复100行
  • 多个寄存器:认为36个寄存器可以复制和粘贴
  • 删除{motion}:例如从光标删除直到下一次出现的&#39; initWithFrame&#39;

这些只是Vim有XCode文本编辑击败的几个例子

对于Objective-C。我倾向于在IDE上安装Vim插件以充分利用这两个方面 - 本机构建/ UI组件支持。

顺便提及。 Mac上的许多原生(Coacoa)文本字段都支持Emac键盘绑定(例如,CTRL-A到行顶部)。包括您在stackoverflow上输入答案时使用的那个:D

XVim适用于XCode。 IdeaVim

AppCode