sponsor Vim development Vim logo Vim Book Ad

WORDComplete : Insert mode completion that completes an entire sequence of non-blank characters

 script karma  Rating 0/0, Downloaded by 45  Comments, bugs, improvements  Vim wiki

created by
Ingo Karkat
script type
The built-in insert mode completion i_CTRL-N searches for keywords.
Depending on the 'iskeyword' setting, this can be very fine-grained, so that
fragments like '--quit-if-one-screen' or '/^Vim\%((\a\+)\)\=:E123/' can take
many completion commands and are thus tedious to complete.
This plugin offers completion of sequences of non-blank characters (a.k.a.
|WORD|s), i.e. everything separated by whitespace or the start / end of line.
With this, one can quickly complete entire text fragments which are delimited
by whitespace.

- Check out the CompleteHelper.vim plugin page (vimscript #3914) for a full
  list of insert mode completions powered by it.

In insert mode, invoke the WORD completion via CTRL-X CTRL-W.
You can then search forward and backward via CTRL-N / CTRL-P, as usual.

CTRL-X CTRL-W           Find matches for WORDs that start with the non-blank
                        characters in front of the cursor and end at the next
                        First, a match must start after whitespace (or at the
                        beginning of the line); if that returns no results, it
                        may match anywhere.
                        Further use of CTRL-X W will copy the text including
                        the next WORDs following the previous expansion in
                        other contexts.

{Visual}CTRL-X CTRL-W   Find matches for WORDs that start with selected text
                        and end at the next whitespace.

To query the entire command argument --foo-bar (when "-" is not part of
'iskeyword'), just type "--f" and trigger the completion.

With the relaxed search, "pos(" will complete the entire call "pos([1,2,3])"
found in "searchpos([1,2,3])".
install details
The code is hosted in a Git repo at
You can use your favorite plugin manager, or "git clone" into a directory used
for Vim packages. Releases are on the "stable" branch, the latest unstable
development snapshot on "master".

This script is also packaged as a vimball. If you have the "gunzip"
decompressor in your PATH, simply edit the *.vmb.gz package in Vim; otherwise,
decompress the archive first, e.g. using WinZip. Inside Vim, install by
sourcing the vimball or via the :UseVimball command.
    vim WORDComplete*.vmb.gz
    :so %
To uninstall, use the :RmVimball command.

- Requires Vim 7.0 or higher.
- Requires the ingo-library.vim plugin (vimscript #4433), version 1.010 or
- Requires the CompleteHelper.vim plugin (vimscript #3914), version 1.40 or

For a permanent configuration, put the following commands into your vimrc:

By default, the 'complete' option controls which buffers will be scanned for
completion candidates. You can override that either for the entire plugin, or
only for particular buffers; see CompleteHelper_complete for supported
    let g:WORDComplete_complete = '.,w,b,u'

If you want to use a different mapping, map your keys to the
<Plug>(WORDComplete) mapping target _before_ sourcing the script (e.g.
in your vimrc):
    imap <C-x><C-w> <Plug>(WORDComplete)
    vmap <C-x><C-w> <Plug>(WORDComplete)

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
WORDComplete-1.00.vmb.gz 1.00 2017-09-28 7.0 Ingo Karkat 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.
SourceForge.net Logo