Trcollinson (talk | contribs) m (Updated with correct syntax.) |
(add back in the re-indent mapping with better explanation) |
||
Line 20: | Line 20: | ||
</pre> |
</pre> |
||
− | This simply maps normal mode <tt>p</tt> to what <tt>]p</tt>. While <tt>ctrl+p</tt> now performs just <tt>p</tt> without the indenting functionality. |
+ | This simply maps normal mode <tt>p</tt> to what <tt>]p</tt> normally does. While <tt>ctrl+p</tt> now performs just <tt>p</tt> without the indenting functionality. |
+ | |||
+ | ==Correcting bad indent while pasting== |
||
+ | Unfortunately, the <tt>]p</tt> command will only adjust indent to match the current line, it will not re-indent the pasted text to correct it according to your current indent rules. You can do this as well, using the special mark, <tt>`]</tt>. This will jump to the last character of the paste, so you could change the p mapping above to: |
||
+ | |||
+ | <pre> |
||
+ | :nnoremap p p=`] |
||
+ | </pre> |
||
+ | |||
+ | This takes advantage of the fact that a paste operation will place the cursor at the beginning of the inserted text, and uses the <tt>=</tt> operator to [[Indenting source code|indent]] the entire inserted text. |
||
==References== |
==References== |
||
Line 27: | Line 36: | ||
*{{help|id==}} |
*{{help|id==}} |
||
*{{help|tag=`%5D|label=`]}} |
*{{help|tag=`%5D|label=`]}} |
||
− | *{{help| |
+ | *{{help|tag=%5Dp|label=]p}} |
==Comments== |
==Comments== |
Revision as of 05:00, 12 January 2011
created July 4, 2002 · complexity basic · author RobertKellyIV · version 5.7
If a user would like to paste text into a buffer and have that text indented properly so that the text matches surrounding indents, the following command can be given:
]p
Some users prefer to have all of their text pasted with indenting intact. In order to make this easier, the ]p command can be mapped to the p command, so that whenever p is used, ]p will be executed. The following can be added to the .vimrc to accomplish this:
:nnoremap p ]p :nnoremap <c-p> p
This simply maps normal mode p to what ]p normally does. While ctrl+p now performs just p without the indenting functionality.
Correcting bad indent while pasting
Unfortunately, the ]p command will only adjust indent to match the current line, it will not re-indent the pasted text to correct it according to your current indent rules. You can do this as well, using the special mark, `]. This will jump to the last character of the paste, so you could change the p mapping above to:
:nnoremap p p=`]
This takes advantage of the fact that a paste operation will place the cursor at the beginning of the inserted text, and uses the = operator to indent the entire inserted text.