你会为初学者程序员推荐vim / emacs吗?

时间:2009-07-30 17:58:20

标签: vim emacs

对于刚刚开始编程的人,您会建议使用vim / emacs,还是应该使用某些IDE?像vim / emacs更适合更高级用户而不是初学者?我只是想知道,因为我正试图让我的一些朋友去编程。

17 个答案:

答案 0 :(得分:16)

如果他们刚刚开始编程,我建议开始使用VIM。

  1. 他们将有足够的知识开始学习编程的细节
  2. 取决于语言/平台,我认为他们非常欣赏具有代码完成,通用语言支持等的IDE。(我知道你可以在VIM中实现这一点,但它在IDE中更加无缝)。
  3. 请注意。我是VIM粉丝,我使用VIM插件运行我的IDE,所以我对VIM没有任何反对意见。

    我在你的评论中注意到你正在考虑教他们Java。 BlueJ是一个面向学习Java的Java IDE,可能是一个有用的入门工具。

答案 1 :(得分:12)

当我以前教C& C ++商业化,早在80年代末/ 90年代初期,我们在UNIX机器上进行了所有教学,vi作为编辑器。我们的很多客户都是MSDOS(以及后来的Windows)用户。这些人曾经在为期5天的课程的第一天,在学习C和C ++的同时学习UNIX的基础知识和vi的基础知识。他们都像疯了一样(我不能责怪他们),但他们都管理了它。

也许我们在那时期待彼此更多。尽管如此,我们在短时间内没有改变基因,所以如果他们能够轻松地学习vi,那么今天的程序员也可以学习它,而不会有太多麻烦。

答案 2 :(得分:9)

避免编辑选择的主观问题,与高级/初学者不同的是,立即学习太多。将编码学习曲线与编辑器学习曲线分开可能是个好主意。如果您正忙于学习编码,请使用您已经熟悉的编辑器(不必是IDE,可以是gedit等)。一旦您熟悉编码,如果您对已经知道的内容不满意,可以转到您选择的编辑器。一个高级编码器可能仍然喜欢一个简单的编辑器,一个没有学到太多东西的人可能仍然想要更快地工作并切换到Vim。

答案 3 :(得分:5)

既然你说你向他们推荐Java,那么Eclipse可能就是你的选择。如果你建议使用Common Lisp,我会毫不犹豫地说Emacs。对于Python等,我会说使用他们现在知道的任何文本编辑器; vi,vim,Emacs,Geany,等等。但对于Java,Eclipse是一个非常好的标准选择。

答案 4 :(得分:3)

无论您选择哪种编辑器,都要将屏幕标签贴在屏幕旁边。

答案 5 :(得分:3)

人们要么喜欢vi(或emacs),要么不管他们作为程序员的技能水平而讨厌它。

答案 6 :(得分:2)

运行vimtutor命令。这是一种在Vim中学习很多有用基础知识的互动方式。 Vim非常强大和高效。你不会立刻学到所有关于它的知识。当您继续使用它时,您将不断学习它的更多便利功能。如果你掌握了基础知识,你将开始在命令模式下花费更多时间。不要使用箭头键。首先使用hjkl键移动可能会感到尴尬,但它会很快感觉自然而且变得更快,因为你的手不会把键盘留在键盘上。关于Vim的一个好处是用户几乎从不需要将他或她的手从手中移开。

至于Java,Netbeans踢了IMO。为什么不呢?它是由开发Java语言的人制作的。因此,当我使用Netbeans时,我将它与jVi插件一起使用,这使我可以像使用Vim一样使用它。

答案 7 :(得分:2)

如果他们开始学习编程,最好从像gedit或geany这样的simplae文本编辑器开始。但是学习如何使用emacs或vi将是一个非常有启发性的经历。通过使用纯文本文件(笔记,待办事项列表)学习emacs可能是个好主意,因此不会分散学习语言的细节。

答案 8 :(得分:2)

如果您刚刚开始学习Java,我会选择其中一个图形IDE。是的,像Eclipse或Netbeans这样的东西相当臃肿,但它没有改变这样一个事实:它们通过建议的错误修复等方式降低了进入门槛。

vi或者emacs与gcc结合使用效果很好,但是我会选择更适合初学者的东西。

答案 9 :(得分:2)

我知道我会在这里被emacs / vi人员拒之门外,但在学习语言方面,具有智能感知的IDE(或任何通用版本的调用)绝对是不可或缺的。例如,如果您使用visual studio,您几乎不会花时间使用IDE。自动完成清楚地显示了成员变量的关系,并使其不必记住细节。范围和类型分辨率对于初学者来说也是非常宝贵的。然而,最重要的是,无论您使用什么,都包含工业强度调试器。使用字符串记录到文本文件是无法通过生活。甚至连emacs爱好者也可能会承认,有人使用专业的IDE可以提高效率,初学者也不太可能感到沮丧。现在,如果您正在使用开源/免费的东西,您的体验可能会有所不同。

答案 10 :(得分:2)

我绝不是一个emacs高手,但是在学习新语言的基础知识方面,我觉得它很方便。IDE可能会分散你想要学习的内容(所以你最终花时间学习一个IDE而不是一个语言)和emacs提供良好的缩进和语法突出显示,以及编译,调试和访问shell的轻松访问。

答案 11 :(得分:1)

这取决于您计划开始的平台和语言,然后归结为个人偏好。如果它恰好是Windows并且您打算使用C#/ VC ++ / VB,那么Visual Studio IDE是最好的。

当我开始使用Scheme和python时,我使用了emacs,我发现它很方便。

欢呼声

答案 12 :(得分:1)

编辑似乎是一个敏感话题。这似乎是个人偏好。我学习vim的唯一原因是因为工作场所需要我。我使用emacs的唯一原因是因为上学。话虽如此,我认为只使用可用的开发工具(VS.net框架,Eclipse / NetBeans for Java等)在我看来是最好的,但同样,它绝对是个人偏好。

答案 13 :(得分:1)

我使用DrJavaBlueJEclipse的组合学习了Java。我从DrJava开始,因为它有一个交互式Java shell。然后我用BlueJ和Eclipse玩了一次,我认为我已经知道了。

现在我“知道”几种语言我只使用Vim。

答案 14 :(得分:1)

对于使用文本编辑器的人,我建议使用Vim,但在学习编程的同时

答案 15 :(得分:1)

vi和gcc,没有别的

答案 16 :(得分:0)

我不知道emacs,但我建议在心跳中为初学者学习Vim。 vimtutor程序是获取基础知识的好方法。这是一种努力,但你很快就习惯了。

我在学习HTML时开始使用Vim,这比Notepad之类的东西有了很大的改进。它很快就取代了nano作为我在Ubuntu中选择的命令行文本编辑器,因为它很容易通过Vim快速导航。然后,我决定学习Python,我发现它很容易上手,因为我已经熟悉了Vim。现在我正在学习C,并且拥有一个我已经熟悉的编辑器非常棒,因为这意味着我不必担心习惯新的IDE或文本编辑器。这意味着我的工作量减少了。

我发现知道如何使用Vim比我使用的任何其他编辑器都提高了生产力。唯一的缺点是键绑定会被烧入你的大脑,当我想在Word文档中移动时,我一直在逃避Escape!