自2001年1月1日起,我几乎专门使用Vim进行编程,我觉得作为一个编辑器/IDE,Vim能够满足我的所有需求。但是我不禁想知道,在过去的十年中是否有一些新的杀手级功能被其他IDE开发出来,使我比使用Vim更高效。所以我问:Vim缺少哪些最重要的IDE功能?
自2001年1月1日起,我几乎专门使用Vim进行编程,我觉得作为一个编辑器/IDE,Vim能够满足我的所有需求。但是我不禁想知道,在过去的十年中是否有一些新的杀手级功能被其他IDE开发出来,使我比使用Vim更高效。所以我问:Vim缺少哪些最重要的IDE功能?
:q
符号! - DrAl我很喜欢像Resharper这样的工具提供的优秀重构支持和代码提示。虽然正则表达式在修改代码方面非常强大,但是像Resharper一样理解代码在我看来更好一些。
幸运的是,我可以在Visual Studio中同时使用Resharper和Vim,所以我很高兴。
我发现重构是一个非常好的东西。在vim中更改具有大量源文件的Java包名称可能会非常繁琐。
最初的重构功能是让我们从Emacs转换到Eclipse的杀手级特性。我已经在Java方面广泛使用Eclipse达6年之久,我期望任何替代品都具备以下功能:
重构:重命名变量、函数、更改方法签名(包括所有调用)。
调试: "您在此处" "当前变量为"以及类似于"转到此对象的定义类"或"转到此对象的实际类型"等等。我相信后者需要在调试器和编辑器之间进行相当多的集成。
调试时更换代码。更改代码,按Ctrl-S,你的调试会话中的代码将更新为你刚刚更改的内容。对于大型程序来说,这是一个杀手级功能。
导航:简单的类层次结构导航(请显示此接口中此方法的所有实现以及类似内容)。
Javadoc集成 - Eclipse可以通过将鼠标悬停在标识符上来显示javadoc。
还有一些其他的功能 :)
编辑:我偶尔会在Eclipse内部错过Emacs功能,但Eclipse编辑器已经变得更加强大,所以现在不那么糟糕了。在这方面,每次保存时进行格式化的Save Action是一个杀手级功能。这确保了更改在源代码库中正确显示。
在文件中搜索:在大多数编辑器中,有一个单独的窗口用于在文件中进行搜索,同时可以在主窗口上继续编辑。搜索结果会随着发现而更新。即使搜索仍在进行中,也可以通过单击当前结果来查看它,而无需等待整个搜索完成。(而在cim中,必须等到vimgrep/ctags完成才能查看结果)
这对于搜索大量文件特别有用。
因此,基本上就像在后台搜索并同时显示结果,可以单击结果以同时查看它们。 (类似于Microsoft Visual Studio 6.0的功能)
Vim没有任何一个IDE所拥有的功能缺失。我们唯一可以争论的是:Vim需要定制,而IDE则是开箱即用。
让我评论其他答案以及如何解决这些“需求”。
如上所述,使用:make并学习如何自定义它。
使用非常著名的ropevim(适用于Python),它是一个很好的重构工具。你不需要更多了。还有许多其他工具,可以搜索你所使用的语言。
我使用这个代码片段和映射到TAB键(我认为supertab插件可以实现)
" python stuff
python << EOF
import os
import sys
import vim
for p in sys.path:
if os.path.isdir(p):
vim.command(r"set path+=%s" % (p.replace(" ", r"\ ")))
EOF
" tags for python libs
set tags+=~/.vim/tags/python.ctags
autocmd FileType python,mako set omnifunc=pythoncomplete#Complete
autocmd FileType html,mako set omnifunc=htmlcomplete#Complete
autocmd FileType html,mako set omnifunc=htmlcomplete#CompleteTags
autocmd FileType mako set filetype=mako.html.js
Vim的帮助系统非常完善,你只需要学习它的系统。它有自己的约定,如何组织事物。
我不知道除了Python之外的其他语言,但运行pdb和!python%可以完成它的工作。
这就像是一个老问题:"苏格兰裙下穿着什么?"
回答:"什么都没有。一切都在完美运转中!"
但说真的,我希望看到更直观易用的帮助系统被添加到Vim中。