Tag: sourceedit |
|||
Line 31: | Line 31: | ||
*[https://wincent.com/products/command-t/ Command-T plugin], inspired by the "Go to File" window bound to Command-T in TextMate |
*[https://wincent.com/products/command-t/ Command-T plugin], inspired by the "Go to File" window bound to Command-T in TextMate |
||
*{{script|id=521|text=MRU}} access recently opened files. |
*{{script|id=521|text=MRU}} access recently opened files. |
||
− | *[http://www.vim.org/scripts/script.php?script_id=3736 ctrlp] Fuzzy file, buffer, mru, tag, ... finder with regexp support. |
+ | *[http://www.vim.org/scripts/script.php?script_id=3736 ctrlp] Fuzzy file, buffer, mru, tag, ... finder with regexp support. Written in vim language. Access all the functions with '''ctrl-p''' |
*[http://www.vim.org/scripts/script.php?script_id=1984 FuzzyFinder] same as previous. |
*[http://www.vim.org/scripts/script.php?script_id=1984 FuzzyFinder] same as previous. |
||
Revision as of 16:07, 23 May 2015
created 2006 · complexity intermediate · author Matt Zyzik · version 6.0
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).
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
- ide Tracks files status (open/edited/closed/read only) within a project with icons; automatically builds and updates syntax highlight rules based on the project files (C/C++/Java); avoids buffer duplication; see demo.
- :help netrw for information about the explorer distributed with Vim. It does not display files in a tree by default, but can by using the g:netrw_liststyle option. It also offers useful file-sorting options (by date, size, name).
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.
- ctrlp Fuzzy file, buffer, mru, tag, ... finder with regexp support. Written in vim language. Access all the functions with ctrl-p
- FuzzyFinder same as previous.
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.
- undotree or gundo visualizes your undo tree, see Using undo branches.
- 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
- lawrencium - mercurial 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.
- pyClewn like clewn but written in python and also supports pdb.
- 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++
From a console (the exclude options may vary) generate the tags file as follows:
ctags --exclude=.svn --exclude=target -R .