多年来我一直在使用IDE用于各种语言(VS,IntelliJ,Eclipse,NetBeans,FlashDevelop等),而且我总是发现它们很慢而且混乱(是的,我知道Windows可以被隐藏,重新排列和什么不是)。然而,最近我学会了并且对VIM有点熟练,并且已经将它用于尽可能多的项目。
我的问题是我已经非常依赖IDE提供的各种功能(智能感知,重构,嵌入式文档,列表继续)。有没有人对我如何克服这些拐杖并成为真正的IDE免费提出任何建议?
答案 0 :(得分:46)
我不明白为什么你想成为IDE免费的?为什么编程就像20年前的编程一样美德?听起来你只是想这样做,因为这就是所有“超级”程序员所做的。智能感知,重构等都是提高生产力的巨大变革。我们的工作很难模拟复杂的业务问题,为什么你想在劣质的开发环境中做得更难?
答案 1 :(得分:14)
如果您使用的是Windows,那么切换到VIM绝对没有意义。但是在UNIX / Linux中,shell IS 是IDE。
最重要的一点是VIM只是文本编辑器。不要做任何事情。
你的shell(BASH等)是为了 管理文件和目录。
可以使用窗口管理 GNU Screen或使用BASH作业控制 (^ Z,fg,bg)
intellisense可用于 VIM / Emacs,但从未低估 只是内置的力量 自动完成功能。
最先进的重构工具 在大多数IDE中都是儿童游戏 与我能做的相比 Emacs中的键盘宏。
嵌入式文档:如果你正在做的话 C / Perl编程然后 可用的手册页通常是 足够。
答案 2 :(得分:9)
一些对我有用的快速提示
答案 3 :(得分:8)
农民使用拖拉机 - 不是因为农民不知道如何耕种土壤 - 而是因为时间就是金钱。
@everyone else:我认为OP已经明确表示他想知道如何克服IDE“隐藏”编码和构建应用程序背后的机制的能力。我认为这是一个有效的观点,特别是对于微软的产品 - 因为有很多自动化正在进行,有时我甚至不知道哪些文件需要签入源代码控制......
所以作为回应,我认为如果你真的不想使用IDE,我认为很明显你只有文本编辑器和文档。您可以构建或查找实用程序来帮助您恢复IDE所具有的一些优秀功能,但此时 - 您正在构建IDE!
答案 4 :(得分:3)
我认为无论如何都不会走极端。我使用find,grep和vim的组合来完成大部分的生产故障排除工作,但是当我需要从头开始编写新类时,我仍然使用IDE。它只是有意义,因为我没有记住IDE可以轻松为我做的事情。
答案 5 :(得分:3)
最好的方法是将IDE视为训练轮。当你能够预测到它将为你提示和自动完成的所有内容时,你可以自己开始尝试。
启动编辑器时,最大的诱因可能是事情会发生得多快。 :)至少我对IDE的经验是他们销售了很多硬件。
答案 6 :(得分:3)
您可以使用像JEdit或Emacs这样的模块化系统。这些程序是文本编辑器,但可扩展到几乎完整的IDE样式应用程序。让它以最舒适的方式设置,然后开始逐个删除您认为可以不用的扩展。
但是,不要认为IDE是完全没必要的,在许多情况下它们是非常好用的工具。
答案 7 :(得分:3)
如果您打算计划一段时间,因为这是一份好工作,薪水很高 - 然后希望升任经理或其他事情或开始自己的事业,请继续使用IDE。没关系。很多人这样做,这绝对没有错。如果这是你的职业道路,你没有时间真正学习VI,你不应该打扰。
另一方面,如果你真的喜欢编程 - 如果编程是你热衷的事情,并且即使没有人付钱你就会免费做 - 并且你计划为你的整个生活编程,直到你的手指不再工作 - 然后学习VI。
你可以下载VI脚本给你智能感知,重构等等。但到目前为止,IMO最大的胜利是能够录制和播放宏。
宏给你一些翅膀,就像红牛一样。当您第一次学习它们时,您编辑文本的动作类型可能看起来很奇怪,但是当您开始将它们组合成序列并将这些序列作为宏回放时,您将开始理解那些奇怪的击键(大写字母A)将光标定位在文本行的末尾 - 0将其定位在开头 - w以跳过单词 - 等等)就像小型的动漫机器人一样可以将自己组装成一个巨大的变形金刚野兽可以摧毁你抛出的任何文本转换问题。
我不能告诉你有多少次有人给我一个格式混乱的文件,他们认为我必须写一个程序来修复它,我只是打开VI,输入一些宏,并修复它在我的编辑器中。我让人们看着我的肩膀,哦,啊,关于这个 - 我不是说这是吹嘘或者说我对此感到满意,但我只是想让你印象深刻的是VI本身是一个强大而令人印象深刻的平台。
除此之外,您使用的工具已经不断改进和调整,修复和调试并添加了30多年,而且您有一些非常特别的东西。
你摆脱它所放入的东西。这在人类努力的所有领域都是如此,这在这里也是如此。把时间和精力花在学习VI上,你会发现自己处在一个你甚至不知道存在的高效编码世界。
P.S。我忘了提到另外一件事 - 当你编程的语言X超出风格时会发生什么?是时候学习另一个IDE了。除非你知道VI,否则你的老朋友还在你身边。
答案 8 :(得分:2)
IDE提供的各种功能不是拐杖。提供这些功能将会造成严重后果。
并不是说如果不使用IDE就不能成为一名优秀的程序员,但是如果有两个相同的程序员,那么使用高质量IDE的程序员就会擦掉另一个程序员。
答案 9 :(得分:2)
我为Visual Studio购买了viEmu,我使用jVi for NetBeans。还有一个用于Eclipse的vim插件,但我停止使用它,因为它落后于我的计算机,有时会错过我的按键,这非常没有效果。通过这样做,我不必在vim和IDE之间做出选择。 vim插件是模拟器,因此并不完美,但它们具有我发现的所有最重要的功能。
答案 10 :(得分:2)
听起来我觉得你对IDE的速度不满意,你想要的东西和文本编辑器一样快(内存占用少)但仍然可以提高效率。
忽略这是否值得的问题(只能通过生产率比较来确定,这种比较真的因人而异,并且可能因团队和语言而异),这里有一些想法工作:
使用带语法高亮的文本编辑器。这些通常是可用的(如Notepad ++),并不会减慢速度。因为它们是正则表达式,所以它们只有95 +%准确,但足够好。
接下来,查看脚本代码块的功能。对于Java,可能会有BeanShell,或者可能支持像Ruby或Python这样的语言本身,并开发/查找宏,它允许您选择一大块文本并将其传递给脚本运行器(以便在您快速检查语法时不确定)。根据语言的不同,获取一个选择API调用的宏并确定如何在浏览器窗口中打开文档也可能相当简单。
要真正提高效率,您需要非常了解自己的API和文本编辑器,并开发大量的肌肉记忆,并快速开发小型宏来执行冗余任务。
这不是我的一杯茶,但我见过的那些富有成效的人都遵循这种道路。
答案 11 :(得分:2)
我猜你似乎在问“IDE为我做了什么?”和“什么是[臃肿的IDE选择]的替代品?”和“我怎样才能了解IDE如何做这些事情?”
所以
除了'编辑'之外,vim做了许多整洁的事情。 vim将执行自动缩进(==
)和一些自动完成(ctrl-P)。在制作代码时,那就是你正在做的事情。
您可以手动编写构建脚本。并不是说这是一种特别高效的方式,但你会对eclipse在后台做的事情有很大的了解。此外,您将完全控制依赖项,并确切了解构建过程的工作原理。没有更多“我甚至不能在没有netbeans的情况下建立它!”
这意味着,学习make
或其中一个java build-script-things(ant?)你绝对可以在make中编写java buildscripts,并且无论如何都会非常有用。
如果您正在编写C代码,indent
是一个非常有用的工具 - 虽然vim的漂亮打印通常已经足够好了。
了解grep是否可以搜索文件(尤其是-n
,-R
和--color
选项!)作为额外的奖励,您将开始学习正则表达式。
答案 12 :(得分:2)
pragmatic programmer有一个关于文本编辑的好部分,它可以让我回家。核心原则是,一旦你学习了一个功能强大(可扩展)的编辑器,你就可以高效,轻松地对代码进行切片和切块,而且不考虑你当时正在使用的语言。
一个好的IDE可以是一个好的编辑器,它支持你经常编辑的各种语言和文本格式。
就此而言,我有点失望的是,Visual Studio没有内置支持文件类型,如.ini,.cmd,.bat,.reg等。似乎这将是微不足道的添加,并将使开发人员更可能依赖该编辑器的一切。
(除此之外:这与依赖IDE作为拐杖完全不同。每个开发人员都应该理解他们项目中的每一段代码,而不是依赖于魔法。)
答案 13 :(得分:1)
如何摆脱自己?我相信这一切都始于良好的构建脚本。知道如何从命令行进行构建,FAST是关键。这是IDE阻止你的地方。如果您没有自己构建,并且让IDE自动为您自动生成,那么您就错失了很多灵活性。
因此,不要记住API空间,而是学习构建语言以及如何以您希望的方式运行编译器和链接器。继续使用IDE进行编辑。然后,当您对此感到舒服时,您可以切换到您喜欢的任何编辑器而不会产生太多摩擦。但IMO如果你开始在另一个编辑器中进行编辑,但是使用IDE进行构建,那么你的情况会更糟,特别是如果最终确定IDE对某些东西有好处的话呢!
答案 14 :(得分:1)
我不建议您退出IDE。从IDE到记事本可能会非常痛苦(你会错过Intellisense和断点很多)。放弃IDE的唯一方法是卸载它们并从记事本开始。再说一遍:我不推荐它。 IDE旨在提高您的工作效率,并用于执行我们不想做的无聊任务(为空白表单创建代码,为按钮创建事件等)。
我使用记事本在C ++中编写小dll并且......哦!我真的很想念Intellisense和一个可以纠正我的语法错误的可爱的IDE ......
答案 15 :(得分:1)
这是特定于Mac OS X的,但我喜欢TextMate。它是一个带有“半自动完成”的文本编辑器和一些文档快捷键等等。如果你需要它,你可以得到一些帮助,但它仍然是一个文本编辑器。
答案 16 :(得分:1)
安装emacs,不要回头。
答案 17 :(得分:1)
我想问题是'为什么?'。
当我尝试学习一门新语言时,我倾向于不使用IDE。现在我正在使用gedit来学习C,但即便如此,我还是使用了线条和支架突出显示,自动选项卡和语法高亮+一些自定义构建/运行脚本。
当您的编程是达到目的的手段时使用IDE。 IDE的目的是加快您的工作。
当编程结束时,请使用简单的文本编辑器。
答案 18 :(得分:0)
我个人使用emacs作为我的编辑器,然后使用我的操作系统的工具来完成剩下的工作。
在Linux上,我总是使用shell来做所有事情。文档的联机帮助页(哦,我在Windows上编码时会错过这些),grep to ... er,“grep”文件,脚本做有用的事情等等。
尝试找到执行您希望VIM执行的作业的外部工具,这是您臃肿的IDE为您所做的工作。模块化很好。
答案 19 :(得分:0)
购买第二台显示器。
答案 20 :(得分:0)
如果您了解如何正确配置IDE,您可能会在VIM中获得IDE的许多功能。但最终,问题是为什么你想这样做?为什么在每个项目中都有一些混乱的配置,当你在IDE中工作时更容易。我认为学习使用任何语言的时间要好得多,而不是学习如何使用文本编辑器,尽管它可能很强大。
答案 21 :(得分:0)
您可以同时使用IDE和文本编辑器。
用于重构,文档,搜索,使用,构建工具集成,无缝不同技术转换(是的,想法),任务/问题集成,时间跟踪集成,代码/库实验的IDE。
......以及......其他任何让你开心的文本,以及没有IDE的情况,例如ssh命令行,测试/集成机器(这是你想要构建的时候)手头的工具,并且不依赖于IDE来构建任务。)
答案 22 :(得分:0)
编辑?集成开发环境?真正的程序员使用蝴蝶。 src
答案 23 :(得分:0)
我认为Visual Studio 2K5和2K8感觉很慢并且“膨胀”,直到我升级到中端SSD驱动器。
确保有足够的内存后,将IDE放在快速的磁盘驱动器上通常是您可以进行的最佳性能升级之一 - 甚至可能超过CPU速度。请参阅:http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx
升级到SSD并对Windows进行一些与SSD相关的调整后,Visual Studio 2005在2.4ghz Core 2 Duo笔记本电脑上的加载速度与文本编辑器一样快。
当uber-3l337 UN1x c0derz在拥有32MB RAM的386s上愉快地运行EMACS时,我们是否应该购买昂贵的磁盘驱动器才能以响应的方式运行“现代”IDE?嗯,毫无疑问,如果没有IDE,很多编码人员都会非常高效,而且还有很多IDE编写者。给他们更多的力量。但是,如果您更喜欢使用IDE并且编码就是如何谋生,那么几百美元应该是一个破坏者吗?由你决定,但我认为值得考虑。