-
Notifications
You must be signed in to change notification settings - Fork 1
Repeat command extended to visual mode.
vim-scripts/visualrepeat
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a mirror of http://www.vim.org/scripts/script.php?script_id=3848 DESCRIPTION This plugin defines repetition of Vim built-in normal mode commands via . for visual mode. Additionally, it offers functions like the popular repeat.vim plugin that allow mappings to be repeated in visual mode, too. VISUAL MODE REPETITION This extends the built-in normal mode repeat . to visual mode. VISUAL MODE MAPPING REPETITION Like with repeat.vim for normal mode, visual mode mappings can register a <Plug> mapping to be used for visual mode repetition. Likewise, normal mode mappings can (in addition to the repeat.vim registration of a normal mode mapping) register a visual mode mapping with visualrepeat.vim that will be repeated in visual mode. Operator-pending mappings end with g@ and repeat naturally; i.e. Vim re-applies the 'opfunc' on the equivalent text (but at the current cursor position). But without a call to repeat#set(), it is impossible to repeat this operator-pending mapping to the current visual selection. Plugins cannot call repeat#set() in their operator-pending mapping, because then Vim's built-in repeat would be circumvented, the full mapping ending with g@ would be re-executed, and the repetition would then wait for the {motion}, what is not wanted. Therefore, this plugin offers a separate visualrepeat#set() function that can be invoked for operator-pending mappings. It can also be invoked for normal-mode mappings that have already called repeat#set(), and may override that mapping with a special repeat mapping for visual mode repeats. Together with the remapped {Visual}. command, this allows repetition - similar to what the built-in Vim commands do - across normal, operator-pending and visual mode. SOURCE - Based on vimtip #1142, Repeat last command and put cursor at start of change http://vim.wikia.com/wiki/Repeat_last_command_and_put_cursor_at_start_of_change - The client interface and implementation has been based on repeat.vim (vimscript #2136) by Tim Pope. RELATED WORKS - repeat.vim (vimscript #2136) has been the basis for this plugin and should be used in conjunction with visualrepeat.vim. (Otherwise, you'd have visual mode repeat, but no repeat in normal mode.) USAGE {Visual}. Repeat last change in all visually selected lines. - characterwise: Start from cursor position. - linewise: Each line separately, starting from the current column (usually the first in this mode). - blockwise: Only the selected text. This is implemented by temporarily duplicating the selection to separate lines and repeating over those, starting from the first column. Note: If the last normal mode command included a {motion} (e.g. g~e), the repetition will also move exactly over this {motion}, NOT the visual selection! It is thus best to repeat commands that work on the entire line (e.g. g~$).
About
Repeat command extended to visual mode.
Resources
Stars
Watchers
Forks
Packages 0
No packages published