blockinsert : Easy Insert/Append to a paragraph of text
script karma |
Rating 8/2,
Downloaded by 2117 |
Comments, bugs, improvements
|
Vim wiki
|
created by |
Dimitar Dimitrov |
|
script type |
utility |
|
description |
Easy Insert/Append to a paragraph of text
Blockinsert can take a range but if no such is given it will act upon the
current paragraph.
First line of code
Another line of code
Yet another one
Last line of code
1.1 Insert
[count] \i - will transform the above into: (count 3 used)
---First line of code
---Another line of code
---Yet another one
---Last line of code
1.2 Append
[count] \a > will transform the above into: (count 2 used)
---First line of code>>
---Another line of code>>
---Yet another one>>
---Last line of code>>
1.3 Delete
[count] \i or \a without any text will delete as many characters: (3\i used)
First line of code>>
Another line of code>>
Yet another one>>
Last line of code>>
1.4 Act on both ends
[count] \[] will use both \i and \a: (2\[] * ** used)
Note: the same [count] will be applied to both operations
**First line of code>>****
**Another line of code>>****
**Yet another one>>****
**Last line of code>>****
1.5 Act on both ends using the same text
[count] \[[ will use both \i and \a and the same text: (| used)
|**First line of code>>****|
|**Another line of code>>****|
|**Yet another one>>****|
|**Last line of code>>****|
1.6 Record
\qi, \qa and \q[] will execute rather than write the text in input.
Example with \qa gUaW:
|**First line of CODE>>****|
|**Another line of CODE>>****|
|**Yet another ONE>>****|
|**Last line of CODE>>****|
==========================================================
There is one special case. When selecting text in visual block mode, the
boundaries of the text acted upon are defined by the limits of the visual area.
Example: (the <bar>s represent our selection)
Some text here |stridx( | end of this line
Some other text... |strridx( | text after a function
Let's start a third line |strlen( | ...finish this line
End of paragraph |substitute(| end indeed.
Now that a selection has been defined, all you need to do is type:
\a followed by )
and your text will become:
Some text here stridx() end of this line
Some other text... strridx() text after a function
Let's start a third line strlen() ...finish this line
End of paragraph substitute() end indeed.
==========================================================
For all this to work you MUST define your custom mappings in your vimrc:
vmap <leader>i <plug>blockinsert-i
vmap <leader>a <plug>blockinsert-a
vmap <leader>qi <plug>blockinsert-qi
vmap <leader>qa <plug>blockinsert-qa
nmap <leader>i <plug>blockinsert-i
nmap <leader>a <plug>blockinsert-a
nmap <leader>qi <plug>blockinsert-qi
nmap <leader>qa <plug>blockinsert-qa
vmap <leader>[] <plug>blockinsert-b
vmap <leader>[[ <plug>blockinsert-ub
vmap <leader>]] <plug>blockinsert-ub
vmap <leader>q[] <plug>blockinsert-qb
vmap <leader>q[[ <plug>blockinsert-uqb
vmap <leader>q]] <plug>blockinsert-uqb
nmap <leader>[] <plug>blockinsert-b
nmap <leader>[[ <plug>blockinsert-ub
nmap <leader>]] <plug>blockinsert-ub
nmap <leader>q[] <plug>blockinsert-qb
nmap <leader>q[[ <plug>blockinsert-uqb
nmap <leader>q]] <plug>blockinsert-uqb
Note: You can replace \i, \a, \qi, \qa, \[], \[[, \]], \q[], \q[[, \q]]
with whatever you like. |
|
install details |
blockinsert.vim --> ~/.vim/plugin
blockinsert.txt --> ~/.vim/doc
Latest version at:
https://github.com/kurkale6ka/vim-blockinsert |
|
script versions (upload new version)
Click on the package to download.
blockinsert.zip |
4.1 |
2010-09-20 |
7.0 |
Dimitar Dimitrov |
A single line is a valid range now |
blockinsert.zip |
4.0 |
2010-09-18 |
7.0 |
Dimitar Dimitrov |
Deletion:
made it work correctly in visual block mode
repeating it doesn't require to re-enter empty text anymore
Improved interactive messages
Added support for right to left editing
Defined g:blockinsert_commands and used it to disable blockinsert commands by
default
When repeating actions performed on a visual block selection, blank portions of
text in the new area will be correctly skipped.
Corrected the virtualedit mess. Still need to disable it though.
Renamed the commands to begin with Block... & created Block[Q]BothSame.
Updated the help file. |
blockinsert.zip |
3.2 |
2010-09-17 |
7.0 |
Dimitar Dimitrov |
The mappings can now operate on a visual block area defined anywhere.
The . (dot) is able to repeat that action now. |
blockinsert.zip |
3.1 |
2010-09-16 |
7.0 |
Dimitar Dimitrov |
Corrected a small regression which made the use of . (dot) impossible. |
blockinsert.zip |
3.0 |
2010-09-16 |
7.0 |
Dimitar Dimitrov |
New feature:
Added the possibility to define the boundaries of the text acted upon by drawing a visual block selection.
Example: (the <bar>s represent our selection)
Some text here |stridx( | end of this line
Some other text... |strridx( | text after a function
Let's start a third line |strlen( | ...finish this line
End of paragraph |substitute(| end indeed.
Now that a selection has been defined, all you need to do is type:
\a followed by )
and your text will become:
Some text here stridx() end of this line
Some other text... strridx() text after a function
Let's start a third line strlen() ...finish this line
End of paragraph substitute() end indeed.
Enjoy.
todo: Add the possibility to repeat this action by typing . (dot)
todo: Create \[[, \]], \q[[, \q]] for cases where we want the same text on both ends. |
blockinsert.zip |
2.1 |
2010-09-15 |
7.0 |
Dimitar Dimitrov |
2 bug fixes:
- If a count was used with \qi, \qa or \q[], it wasn't interpreted correctly.
- There was also a problem with reseting virtualedit to its original value. |
blockinsert.zip |
2.0 |
2010-09-14 |
7.0 |
Dimitar Dimitrov |
Improved integration with the 'repeat' plugin.
The inserted / appended text is now remembered,
you don't have to re-enter it when repeating. |
blockinsert.zip |
1.1 |
2010-09-13 |
7.0 |
Dimitar Dimitrov |
Integrated blockinsert with Tim Pope's repeat plugin.
It is now possible to repeat blockinsert mappings by pressing . (dot)
More info about repeat:
http://www.vim.org/scripts/script.php?script_id=2136
http://github.com/tpope/vim-repeat |
blockinsert.zip |
1.0 |
2010-09-13 |
7.0 |
Dimitar Dimitrov |
Initial upload |
ip used for rating: 142.132.191.50
|