provides software and services that enable enterprises
Live Chat 1-888-673-6564

Open Source Software Technical Articles

  • Home
  • Search
  • Contact Us
  • Products and Support
  • Services
  • Enterprise OSS Blog
  • Wazi Technical Blog
  • About Wazi
  • Attributions and Licensing
  • Supply Chain Compliance
  • How to Contribute
  • Contributors
  • Resources Library
  • Cloud Services
  • Partners
  • Customers
  • Community
  • Company
  • Careers
  • News and Events

Subscribe to Wazi by Email

Your email:


Enterprise Developer Support 24 x 7, Get a Support Quote Now!


click-here-to-chat-with-an-online-representative

download-oss-discovery

Latest Posts

  • The secret to great reporting with Drupal 7
  • A more colorful LibreOffice unveiled
  • Toward a more colorful LibreOffice
  • Flexible administration with Puppet's Facter and templates
  • Knock for OpenSSH
  • Get more out of phpMyAdmin
  • Image annotation in GIMP, Dia, and OpenOffice Draw
  • Solr, Drupal 7, and faceted search
  • Using FreeNAS' new full disk encryption for ZFS
  • Create distributed storage with Gluster

Connect with Us!

Current Articles | RSS Feed RSS Feed

Tips for Using Vim as an IDE

Posted by Juliet Kemp on Tue, Jul 19, 2011
  
Email This Email Article  
Tweet  
  

Vim isn't just a great editor; it's also a hugely flexible, configurable, and extendable application. You can even set up Vim as an integrated development environment (IDE), giving you all the advantages of a dedicated text editor together with the ability to check syntax, jump between tags, autocomplete, and do all the other useful things you get from a modern IDE. These Vim tips and tricks will get you editing like a pro.



By the way, I'm assuming you're running Vim under Linux, but you can find versions of Vim that run under Windows, Mac OS X, the BSDs, Solaris, and most other operating systems.



It's pleasingly straightforward to set up the code editing basics of autoindenting and syntax highlighting in Vim. Just put these two lines in your ~/.vimrc file:



filetype indent on
syntax on


These two commands use built-in Vim features to identify the filetype of the loaded file and set the appropriate indenting and syntax highlighting. A standard Vim install comes with syntax highlighting rules for most of the languages you're likely to use, but you can create your own rules if you need them. For instance, to change the indent spacing from the default value of 8 to, say, 2, use this line:



set shiftwidth=2


You can also prevent spaces from being changed automatically into tabs:



set expandtab


Another standard feature in a lot of IDEs is search-as-you-type. To turn this on in Vim, put this line in your ~/.vimrc:



set incsearch


You can also use * to search for the word currently under your cursor.



Plugins are Vim scripts that load automatically when Vim is started, or when certain filetypes are opened. Filetype plugins set up various options specific to certain filetypes, such as correct comment handling and keyword matching. You can enable filetype plugins by adding the line filetype plugin on to ~/.vimrc.



Ctags



Ctags (Exuberant Ctags is the Vim version) generates an index file of names found in a source tree: functions, variables, class members, class methods, and so on, with the exact list depending on which language you're using. Install and run Ctags and suddenly you can jump around between tags within your Vim session.



On Linux, you should be able to install ctags as a package (called exuberant-ctags for Debian/Ubuntu, and just ctags for Red Hat/CentOS). On a Mac it's best installed via MacPorts, and if you use Windows you can download the appropriate code from the project's SourceForge page.



Once installed, navigate to the top of your code project and type ctags -R at a command prompt to generate your tagfile. Open one of the source files in Vim, put the cursor on a method name or object type, and press Ctrl-] to jump to its location. Ctrl-T takes you back to where you were before.



To make Ctags even more useful, install the taglist Vim plugin. Download and unzip the zip archive, and move taglist.vim into ~/.vim/plugins/ and taglist.txt into ~/.vim/doc/. To generate the help files for taglist (and any other plugins whose documentation is in ~/.vim/doc), cd into ~/.vim/doc, start Vim, and run :helptags ..



To use taglist, open up one of your source files in a project you've run Ctags on, then type :TlistToggle to open a tag window. Double-click on a tag (or press Enter) to navigate to that tag in the source code window. As you open new files, their tags are added to the list window. You can also click on a tag, then type 't' to open that tag in a new Vim tab. If you edit a file, then save it, you can use :TlistUpdate to update the taglist to include the new tags.



Check out the manual for more information, including how to map a single key to toggle the taglist window.


19a98812-f823-48dc-841e-bf029c63c6d7

Autocompletion



When you're coding, autocompletion helps you avoid mistyping long method names, and speeds things up a bit. To set up built-in omnicompletion in Vim, put these lines in your .vimrc file:



filetype plugin on 
set ofu=syntaxcomplete#Complete


Start typing a word or method name, then press Ctrl-N to see a list of completion suggestions. Hit Ctrl-N again to go forward through the list, or Ctrl-P to go backwards. To get full method name completion, you need to have run ctags first or Vim will be limited to whatever it can find in the current file and the dictionary.


Vim also offers a bunch of other completion types, such as filename completion (Ctrl-X Ctrl-F), whole line completion (Ctrl-X Ctrl-L), and completion using keywords in the current file. Type :help ins-completion for more information.



If you prefer tab completion, try the Vim script SuperTab.



File Browsing and Multiple Files



The NERDtree plugin gives you a tree-like filesystem browser in your Vim window, which can be great for navigating source code structures. Unzip the NERD_tree.zip file in your ~/.vim directory to get the files in the right place, and run :helptags . as for taglist.



Open a file and type :NERDTreeToggle to open up the file browser. Press Enter on a filename (or double-click) to open it in the file window. Type :help NERDTree for more information, including info on its bookmark function.



You can open two files in the same Vim window by using :new secondfile.txt. Navigate between the windows using Ctrl-W J (down) and Ctrl-W K (up).



:new splits the window horizontally, but you can also split it vertically, populating it with the same file in each pane, with the command :vsplit (:split does the same thing horizontally). Navigate between vertically split windows using Ctrl-W H and Ctrl-W L. You can open a new file in any window using :n thirdfile.



In Vim you can open multiple buffers that contain files that are being edited all as full-screens, but it's not always easy to jump between them or to remember which are open. The MiniBufExplorer plugin shows you the list of open buffers at the top of your Vim window, and allows you to navigate between them.



Download minibufexpl.vim and move it into your ~/.vim/plugin/ directory, then open a couple of files in Vim. To fire up MiniBufExplorer, type :MiniBufExplorer. If you're using a graphical version of Vim, you can double-click on a filename to switch to it; otherwise, navigate to the MiniBufExplorer window using Ctrl-W K, then press Enter when your cursor is on the filename you want.



Other Tips and Tricks



Finally, here's a quick roundup of some other helpful tips in brief:



    • vimdebug allows you to step through your code and set breakpoints. It's currently in beta, and supports only Perl, Ruby, and Python.

    • AutoClose lets you set up mappings to automatically close braces.

    • SnipMate provides TextMate-style snippets to make it easy to insert chunks of text.

    • Vimper comprises a bunch of scripts that help you use Vim as an IDE.

    • Look into setting up Vim as a PHP-specific IDE.

    • The CVim plugin helps you write C/C++ code more easily in Vim.



These scripts, plugins, and techniques should give you an idea of the potential power of Vim as a development environment. Now get started configuring Vim as the IDE of your dreams to meet your exact needs!

Follow @openlogic
Follow @CloudSwing

This work is licensed under a Creative Commons Attribution 3.0 Unported License
Creative Commons License.Follow @openlogic
Follow @OSCloudServices

This work is licensed under a Creative Commons Attribution 3.0 Unported License
Creative Commons License.
Tags: Technical, Tips & Tricks, Vim, Programming, ctags

Comments

Currently, there are no comments. Be the first to post one!
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Loading...
Error sending email
Email sent successfully

Email article
Email To : 
Your name : 
Message : (maximum 200 characters)
Home | Search | Contact Us | Products and Support | Services | Enterprise OSS Blog | Wazi Technical Blog | Resources Library | Cloud Services | Partners | Customers | Community | Company | Careers | News and Events
Products
OpenLogic Exchange (OLEX)
License Compliance Module
OSS Discovery
OSS Deep Discovery
OpenUpdate
Services
Open Source Support
CentOS Support
Scanning & Compliance
Open Source Training
Professional Services
Solutions
Support & Indemnification
Open Source Governance
Open Source Scanning
Open Source Provisioning
Consulting & Training
Contact Us
1-888-673-6564


© 2013 OpenLogic, Inc. All rights reserved.
Site Map  |  Privacy Policy