created 2001 · complexity basic · author Yegappan · version 6.0
% key[]
The %
key can be used for the following :
- To jump to a matching opening or closing parenthesis, square bracket or a curly brace:
([{}])
- To jump to start or end of a C-style comment:
/* */
. - To jump to a matching C/C++ preprocessor conditional:
#if
,#ifdef
,#else
,#elif
,#endif
. - To jump between appropriate keywords, if supported by the ftplugin file, for example, between
begin
andend
in a Pascal program.
showmatch[]
The showmatch
option is also useful: it can reduce the need for %
, the cursor will briefly jump to the matching brace when you insert one.
To speed things up, you can set the 'matchtime'
option. In vimrc:
:set showmatch :set matchtime=3
The 'showmatch'
option will not scroll the screen. To scroll the screen you can use a mapping like:
inoremap } }<Left><c-o>%<c-o>:sleep 500m<CR><c-o>%<c-o>a inoremap ] ]<Left><c-o>%<c-o>:sleep 500m<CR><c-o>%<c-o>a inoremap ) )<Left><c-o>%<c-o>:sleep 500m<CR><c-o>%<c-o>a
matchit[]
The matchit.vim
script allows you to configure %
to match more than just single characters. You can match words and even regular expressions. Also, matching treats strings and comments (as recognized by the syntax highlighting mechanism) intelligently.
Matchit is included in the Vim standard distribution since version 6, but it's not enabled by default.
The version at Vim scripts is usually more up to date, so you probably want that one. Unzip it in your ~/.vim
directory.
To use the version included with Vim copy $VIMRUNTIME/macros/matchit.vim
to ~/.vim/plugin
and $VIMRUNTIME/macros/matchit.txt
to ~/.vim/doc
.
Rebuild the help tags with :helptags ~/.vim/doc
For example, you can now use %
and g%
to cycle back and forth between if
and fi
in shell scripts.
See :help matchit-install for more information on installing matchit. After installation you can use :help matchit
for usage information.
See also[]
- :help %
- :help 'matchpairs'
- :help 'showmatch'
- :help matchit-install
- matchit: Extended % matching for HTML, LaTeX and many other languages
- ruby-matchit: 'Matchit' for Ruby
Comments[]
You can select a block delimited by braces using any the following:
- With the cursor on a brace, type
v%
to select to the matching brace. - With the cursor inside a block, type
viB
(inner block) orvaB
(a block, including the braces). - Using a mouse, double-click a brace.