mail_movement : Movement over email quotes with ]] etc.
| script karma
Downloaded by 650
Comments, bugs, improvements
script versions (upload new version)
This filetype plugin provides movement commands and text objects for email
A quoted email is determined either by:
- lines prefixed with ">" (one, or multiple for nested quotes)
- an optional email separator, e.g.
and the standard
optionally followed by other header lines.
Move around email quotes of either:
- a certain nesting level, as determined by the current line; if the cursor is
not on a quoted line, any nesting level will be used.
- the range of lines from the "From: <Name>" mail header up to the line
preceding the next email separator or next mail header.
]] Go to [count] next start of an email quote.
][ Go to [count] next end of an email quote.
[[ Go to [count] previous start of an email quote.
 Go to [count] previous end of an email quote.
Move to nested email quote (i.e. of a higher nesting level as the current
line; if the cursor is not on a quoted line, any nesting level will be used).
]+ Go to [count] next start of a nested email quote.
[+ Go to [count] previous start of a nested email quote.
aq "a quote" text object, select [count] email quotes, i.e.
- contiguous lines having at least the same as the
current line's nesting level
- one email message including the preceding mail
headers and optional email separator
iq "inner quote" text object, select [count] regions with
- the same nesting level
- the contents of an email message without the
preceding mail headers
This script is 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.
To uninstall, use the :RmVimball command.
The commands and text objects are only active when 'filetype' is set to
"mail". If you use Vim as an external editor for your browser or email
program, you need to make sure that the filetype is properly detected, or
manually set the filetype every time via
If you want to use this plugin also for other filetypes, e.g. "txt", create a
file ftplugin/txt_movement.vim in your 'runtimepath' (usually ~/.vim) with the
- Requires Vim 7.0 or higher.
- Requires the CountJump plugin (vimscript #3130), version 1.40.
For a permanent configuration, put the following commands into your vimrc:
To change the default motion mapping, use:
let g:mail_movement_BeginMapping = ''
let g:mail_movement_EndMapping = ''
let g:mail_movement_NestedMapping = '+'
To also change the [ / ] prefix to something else, follow the instructions for
To change the default text object mappings, use:
let g:mail_movement_QuoteTextObject = 'q'
To also change the i prefix to something else, follow the instructions for
Click on the package to download.
ip used for rating: 22.214.171.124