阻止vim删除空行上的缩进

时间:2011-09-14 07:59:07

标签: vim indentation

当光标放在只包含空格字符的行的末尾时,当我按回车键时,vim将删除该空格。我觉得这很烦人,因为它打破了我选择缩进到同一级别的代码的脚本。我怎样才能阻止vim这样做?

在我的.vimrc(http://bjuhn.com/randomstuff/vimrc)中,我有以下内容:

filetype plugin on
set copyindent

也就是说,我没有使用任何语法感知的自动缩进功能,因为我还没有找到一个可以满足我喜欢的功能。

2 个答案:

答案 0 :(得分:14)

Vim wiki暗示了这一点:

inoremap <CR> <CR>x<BS>

因为如果在该行上输入了一些文本,即使已删除了缩进,也不会删除缩进。

[EDIT - milimetric]

完整解决方案中缺少几件。您还需要重新映射o和O以及用于添加行的其他任何内容:

inoremap <CR> <CR>x<BS>
nnoremap o ox<BS>
nnoremap O Ox<BS>

同样的想法,但是对vim更新的人可能不会很快解决它。

答案 1 :(得分:0)

对我来说,这段代码有效:

inoremap <silent> <Esc> <C-O>:stopinsert<CR>