Vim Tips Wiki
Advertisement
Tip 1039 Printable Monobook Previous Next

created November 7, 2005 · complexity basic · author Yakov Lerner · version 6.0


The 'set paste' command disables autoindenting, but the downside is that imaps (insertion-mode maps) do not work.

I needed imaps to work and autoindenting disabled, together.

This means I had to disable all autoindenting and 'set nopaste'. This combination turned out surprisingly difficult to grok. Finally I found the 6 relevant options, and the proper autocommand to resist persistent attempts of filetype-scripts to turn autoindenting on.

Here is the solution that finally worked for me:

" Begin disable-autoindent-with-nopaste stuff
set noai noautoindent nocin nocindent nosi nosmartindent nopaste
au BufWinEnter * :set noci nocindent indentexpr= indentkeys=
map \a :call ShowAutoIndent()<cr>
fu! ShowAutoIndent()
  20verbose set ai? cin? si? paste? indentexpr? indentkeys?
endfu

If indenting is still not disabled, you can diagnose the problem using \a, or :call ShowAutoIndent()<cr>. This will show you which script turned autoindenting back on. The 'correct' output (all autoindenting disabled) should look like this:

noautoindent
nocindent
nosmartindent
nopaste
indentexpr=
indentkeys=

Comments


Advertisement