sponsor Vim development Vim logo Vim Book Ad

SuperTab : Do all your insert-mode completion with Tab.

 script karma  Rating 2950/926, Downloaded by 94523  Comments, bugs, improvements  Vim wiki

created by
Eric Van Dewoestine
script type

Supertab allows you to use <Tab> for all your insert completion needs
(:help ins-completion).


- Configurable to suit you needs:
  - Default completion type to use.
  - Prevent <Tab> from completing after/before defined patterns.
  - Close vim's completion preview window when code completion is finished.
  - When using other completion types, you can configure how long to 'remember'
    the current completion type before returning to the default.
  - Don't like using <Tab>? You can also configure a different pair of keys to
    scroll forwards and backwards through completion results.
- Optional improved 'longest' completion support (after typing some characters,
  hitting <Tab> will highlight the next longest match).
- Built in 'context' completion option which chooses the appropriate completion
  type based on the text preceding the cursor.
  - You can also plug in your own functions to determine which completion type
    to use.
- Support for simple completion chaining (falling back to a different
  completion type, keyword completion for example, if omni or user completion
  returns no results).

You can also find supertab on github repository:
install details
1. Download supertab.vmb to any directory.
2. Open the file in vim ($ vim supertab.vmb).
3. Source the file (:so %).

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
supertab.vmb 2.1 2014-04-09 7.0 Eric Van Dewoestine Full list of changes: https://github.com/ervandew/supertab/compare/2.0...2.1
supertab.vmb 2.0 2012-06-01 7.0 Eric Van Dewoestine - added support for chaining two completion types (falls back to the second if not results from the first).
- added setting to close completion preview window when the completion popup closes.
- improved compatibility with other plugins.
- other minor bug fixes.
supertab.vba 1.6 2011-07-20 7.0 Eric Van Dewoestine - couple longest enhancement fixes
- added ability to disable supertab via a buffer local variable
- few other miscellaneous fixes.
supertab.vba 1.5 2011-02-16 7.0 Eric Van Dewoestine - updated to support user mapped <c-n>/<c-p>
- fix logic to decide whether to scroll up or down based on current completion context
- fix <c-x><c-*> w/ longest enhancement enabled
supertab.vba 1.4 2011-01-27 7.0 Eric Van Dewoestine Fix error that occurs attempting to complete after optional alternate completion mapping or :SuperTabHelp have set the completion type.
supertab.vba 1.3 2011-01-18 7.0 Eric Van Dewoestine - fix error attempting tab completion if buffer was loaded with no autocmds fired
- fix tabbing through completion results with longest enabled when the longest text expanded is the empty string.
supertab.vba 1.2 2011-01-09 7.0 Eric Van Dewoestine - fix to not break abbreviation expansion on <cr>
- when using longest enhancement, save/restore any previous mappings for <bs>/<c-h>
- fix <cr> mapping to cooperate better with <cr> mappings of other plugins (ex. endwise)
- created variables to set user defined list of before or after patterns for which completion should not be attempted (:h supertab-preventcomplete)
supertab.vba 1.1 2010-09-27 7.0 Eric Van Dewoestine - added optional default <cr> mapping to end completion mode (enabled by default)
- added support for an enhanced longest match completion (disabled by default)
- other minor enhancements + bug fixes
supertab.vba 1.0 2009-12-03 7.0 Eric Van Dewoestine - fixed reverse cycling through result when using <c-n> completion
- now distributed as a vimball with a help file (:h supertab).  Thanks to Christophe-Marie Duquesne.
supertab.vim 0.61 2009-10-16 7.0 Eric Van Dewoestine Fixed a possible error that may occur in some rare conditions.
supertab.vim 0.60 2009-09-16 7.0 Eric Van Dewoestine - Refactored the contextual completion and default discovery support.
  - Context completion now supports plugable functions to determine which
    completion type to use.
  - Default discovery is now a part of context completion.
- NOTE: Several non-backwards compatible configuration changes where made.
  - g:SuperTabRetainCompletionType is now g:SuperTabRetainCompletionDuration
    and accepts one of 'none', 'insert', or 'session'.
  - new setting g:SuperTabCompletionContexts defines which context completion
    functions are consulted.
  - g:SuperTabDefaultCompletionTypeDiscovery is now
    g:SuperTabContextDiscoverDiscovery and requires that
    g:SuperTabContextDefaultCompletionType is set to 'context' and that
    's:ContextDiscover' is in your g:SuperTabCompletionContexts list.
Please see the updated "Global Variables" fold in supertab.vim for additional
details and examples.
supertab.vim 0.51 2009-07-11 7.0 Eric Van Dewoestine Replaced internal function s:IsWordChar with vim's keyword character class (Thanks to Ingo Karkat for the patch).
supertab.vim 0.50 2009-06-26 7.0 Eric Van Dewoestine Added check for vim 7 or greater, otherwise disable supertab support (suggested by Vincent Lee).  Also, removed any remaining pre vim 7 logic that is no longer applicable.
supertab.vim 0.49 2009-02-05 7.0 Eric Van Dewoestine fixed case where new buffer may not be initialized by super tab (thanks to Tammer Saleh for reporting the issue).
supertab.vim 0.48 2009-01-18 7.0 Eric Van Dewoestine Fixed command line completion (ctrl-x ctrl-v) when invoked from supertab.  Thanks to Frank Chang for the patch.
supertab.vim 0.47 2009-01-11 7.0 Eric Van Dewoestine fixed issue with default completion discovery option if desired type is dependent on file type plugins.  Thanks to Andreas Schneider for reporting the issue.
supertab.vim 0.46 2008-11-15 7.0 Eric Van Dewoestine Added support for default completion type 'context', which will result in super tab attempting to determine which completion type to use (file, user/omni, keyword) based on the text preceding the cursor (Based on suggestion by Fran├žois Beaubert).
supertab.vim 0.45 2007-12-18 6.0 Eric Van Dewoestine - fixed possible completion error on first buffer as supertab may not have been properly initialized (thanks to bill emmons for discovering the error).
supertab.vim 0.44 2007-11-08 6.0 Eric Van Dewoestine - added config variable to specify discovery list used to determine the default completion type to use for the current buffer. (based on request by Den Yao)
- added config variables to changed the default mappings for forward backwards completion. (based on request by Li Chaoqun)
- added config variable to preselect the first entry when completeopt has 'menu' and 'longest'. (based on suggestion and patch by Mike Lundy)
supertab.vim 0.43 2007-07-12 6.0 Eric Van Dewoestine With the permission of the original author, this script is now released under the BSD license.
supertab.vim 0.42 2007-06-11 6.0 Eric Van Dewoestine - Added g:SuperTabMidWordCompletion variable to determine if completion should be done within a word (enabled by default).  (based on request by Charles Gruenwald)
- Applied patch to fix <s-tab> cycling through completion results. (submitted by Lukasz Krotowski)
supertab.vim 0.41 2006-08-30 6.0 Eric Van Dewoestine Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github