Wikia

Vim Tips Wiki

Format pasted text automatically

Talk0
1,610pages on
this wiki
Revision as of 05:22, July 13, 2012 by JohnBot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Tip 272 Printable Monobook Previous Next

created 2002 · complexity basic · author RobertKellyIV · version 6.0


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 pastingEdit

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.

ReferencesEdit

Related pluginsEdit

  • vim-pasta allows for pasting with automatic adjusting of indentation to destination context.

CommentsEdit

Advertisement | Your ad here

Around Wikia's network

Random Wiki