Vim で改行時のインデントをスペースかタブ文字かを動的に決定する

Vim で改行する時に前行のインデントを揃えるようにタブ文字を挿入するように設定しているんですが、ごく稀にタブ文字ではなくスペースでインデントを揃えて欲しい場合があります。
と、いうことで の場合にインデントをスペースで揃えるようなマッピングをちょっと書いてみました。

[vimrc]

" <C-CR> で改行した場合にインデントをスペースで揃える
inoremap <C-CR> <Esc>:set expandtab<CR>a<CR><Esc>:set noexpandtab<CR>a


既存のマッピングはガン無視である。