Tip: #1039 - Disable auto indenting yet keep imaps
Created: November 7, 2005 5:35 Complexity: basic Author: Yakov Lerner Version: 6.0 Karma: 0/2 Imported from: Tip#1039
The 'set paste' disables autoindenting, but the downside
is that imaps (insertion-mode maps) do not work.
I needed the imap-s to work *and* autoindenting disabled, together.
This means I had to disable all autoindenting *and* have 'set nopaste'.
This combination turned out surprisingly difficult to grok. Finally I
found the 6 relevant options, and the proper autocommand to
resists persistent attempts of filetype-scripts to turn the 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
" }}} disable-autoindent-with-nopaste
If indenting is *still* not disabled, you can diagnose the problem
using the \a, or :call ShowAutoIndent()<cr>. This will show you
which script turned autoindenting back on.
The 'correct' output (all autoindenting disabled) shall look like this:
noautoindent
nocindent
nosmartindent
nopaste
indentexpr=
indentkeys=