嗨,我正在学习C++,并在一开始使用命令行...然后我开始使用Xcode(从那时起无法切换回命令行),只是想知道使用命令行的一些具体原因/情况而不是IDE ...
Mar*_*ett 31
对大型系统更有效 - 尝试打开包含100个项目和10,000个文件的VS解决方案.
对于很多任务来说比较简单,你可以在一个窗口中编辑,在另一个窗口中运行make,在第三个窗口中使用gdb.
如果每个人都有gcc和vi(或emacs),则更容易自动执行任务,通常更容易在团队或跨平台工作
Jon*_*vis 14
对我来说最重要的是编辑.我真的很喜欢vim,并且很少有IDE具有良好的vim仿真 - 特别是因为我使用dvorak并且必须重新映射很多密钥.对于很多其他人来说,除了他们选择emacs之外,他们会说同样的话.
与vim或emacs相比,大多数IDE编辑都很苍白.有些功能你错过了或者很难很好地工作.例如,ctags肯定可以帮助你跳到vim中的函数定义,但它远远不如许多IDE可以做的那么好,因为它们实际上理解了语言.,当然,调试器集成和项目管理等是不打算在VIM或Emacs,因为他们没有完全成熟的IDE,以及工作(虽然你可以做很多的东西与他们).但通常情况下,vim或emacs的强大功能会掩盖IDE对它们的影响.
此外,就命令行编辑而言,当您无法访问具有GUI的环境时,它们可以在命令行上运行,因此在很多情况下,这种灵活性是一个很大的优势.
当然,如果你能将vim或emacs的所有强大功能与一个完整的IDE结合起来会很棒 - 并且有一些尝试这样做 - 但它总是有问题,甚至最好的尝试都是远非完美.因此,您经常会遇到vim或emacs的选择以及它们带来的功能或带有它带来的功能的IDE.
编辑:进入为什么vim或emacs在许多方面比你的典型IDE可能会变得非常冗长,并且已经有几个关于SO的问题.
这是Emacs的一个伟大的回答:/sf/ask/2506661/#35929
这是一篇关于vi的好文章,似乎经常与之相关:http://www.viemu.com/a-why-vi-vim.html
为了快速尝试我提供一些理由,为什么vim更强大:
从文本编辑的角度来看,典型的IDE基本上是一个加强的记事本.您键入文本并使用鼠标进行导航(虽然有时非常有用,但它可能比使用键盘慢得多).他们添加了特定于代码的功能,如代码完成,自动代码缩进,跳转到函数定义的能力,重构工具等等(因此IDE可以如此有用)但是他们的基本文本编辑功能通常很差.他们可能会添加一些有用的功能,比如ctrl-d来删除一行,但是与你在vim或emacs中获得的内容相比,他们添加的内容通常非常有限.
以删除(一个非常基本的操作)为例.在vim中,您可以对任何动作命令使用删除操作,从而可能有大量的删除方法.
dd 删除整行.5dd 删除5行.dj 向上移动光标,删除当前行左侧的所有内容以及上面一行右侧的所有内容.dG 从此处删除所有内容,直到文件末尾.7dgg 删除此处和第7行之间的所有内容.d% 移动到匹配下一个支撑或支撑的支撑或支撑(以先到者为准)并删除此处和此处之间的所有内容,包括您跳到的支撑或支撑dw 删除此处与单词的下一个开头之间的所有内容de 删除此处和单词的下一个结尾之间的所有内容D 删除此处和行尾之间的所有内容d0 删除此处和行首之间的所有内容d^ 删除此处和行上第一个单词的开头之间的所有内容dty 删除此处与此行中下一次出现y之间的所有内容(如果此处与行尾之间没有y,则删除任何内容)这个清单一直在继续.这只是为了删除.其他基本命令的完整列表也是如此.这只是基本的命令.有许多更多的命令更先进,功能更强大.Vim可以做很多事情,大多数使用它的人只使用它能力的一小部分.
大多数IDE甚至没有这种编辑功能的一小部分.他们有许多其他特定于编程和特定于语言的功能,vim和emacs要么缺乏,要么更难以开始工作 - 例如良好的,上下文敏感的代码完成,重构工具,项目管理等.但是对于文本编辑功能,大多数IDE都无法比较.
| 归档时间: |
|
| 查看次数: |
13382 次 |
| 最近记录: |