刚在新浪微博上面看到的,转下来留个记号,
原文链接http://vim.wikia.com/wiki/Use_Vim_like_an_IDE
I use Vim for all text editing, even software development. At one point I stopped using IDEs. One major reason is that Vim can do all the major things I need from IDEs (tabs, file trees, greping, syntax highlighting, indentation, completion, “quickfix”ing, etc).
## Contents |
Vim Plugins
Still Vim needs plugins to do some IDE-like things that aren’t built in. Here are some Vim scripts that make Vim more like an IDE.
Note: You can use pathogen to isolate your plugins and make it easier to experiment with new plugins.
Project/Filetree Browsing
- NERDTree is a tree explorer plugin for navigating the filesystem.
- vtreeexplorer is a tree based file explorer.
- project gives you a “project” view of files, rather than a straight file system view
Buffer/File Browsing
- bufexplorer lets you navigate through open buffers
- minibufexpl Elegant buffer explorer; takes very little screen space.
- lookupfile Lookup files using Vim7 ins-completion
- Command-T plugin, inspired by the “Go to File” window bound to Command-T in TextMate
- MRU access recently opened files.
Code Browsing
- taglist gives you an outline of the source you’re viewing
- Tagbar similar to taglist but can order tags by scope. Recommend for programming languages with classes, e.g. C++, Java, Python.
- Indexer generates tags for all files in project automatically and keeps tags up-to-date. Using ctags. Works well with project plugin or independently.
- CCTree is a Call-Tree Explorer, Cscope based source-code browser, and code flow analyzer.
- exUtility global search, symbol search, tag track…(Like IDE/Source Insight).
- ShowMarks visually shows the location of marks.
See also Browsing programs with tags and Cscope.
Writing Code
- A plethora of code snippet/template plugins are available, many offering TextMate-like snippet features.
- AutoComplPop gives you code completion as you type.
- CRefVim A C-reference manual especially designed for Vim.
See also Omni completion and Make Vim completion popup menu work just like in an IDE.
Vim Functionality
- matchit improves % matching
- bufkill allows you to delete a buffer without actually closing the window.
- gundo visualizes your undo tree.
- surround makes it easier to delete/change/add parentheses/quotes/XML-tags/much more.
IDE integration
You may want to use your IDE for some tasks like debugging, so some integration between Vim and the IDE can be helpful.
- Integrate gvim with Visual Studio
- Eclim brings Eclipse functionality to the Vim editor.
Source Control Integration
There are many Vim plugins for different source control management systems. Here are a few.
- vcscommand.vim - CVS/SVN/SVK/git/hg/bzr integration plugin
- fugitive - git integration
- perforce - perforce integration
See also Category:VersionControl
Debugging
There are several projects to add debugging functionality to vim
- Clewn implements full gdb support in the vim editor: breakpoints, watch variables, gdb command completion, assembly windows, etc.
- vim-debug, which creates an integrated debugging environment in VIM.
- gdbvim plugin: Watch in vim what you debug in gdb. And more.
Refactoring
Comments
When using Visual Studio, see ViEmu.
Code navigation in vi offers much more than a standard IDE, because of the ability to execute the desired combination of commands. Generate an index much more rapidly than an IDE with a heavy GUI interface:
For example, one can take advantage of the tag stack:
For C++, follow the instructions: on using OmniCpp Define a custom .ctags file
- –c++-kinds=+p
- –fields=+iaS
- –extra=+q
- –language-force=C++
ctags --exclude=.svn --exclude=target -R .