阻止vim移除空线上的压痕

阻止vim移除空线上的压痕,vim,indentation,Vim,Indentation,当光标放在只包含空格字符的行末尾时,当我按enter键时,vim将删除该空格。我觉得这很烦人,因为它破坏了我选择缩进到相同级别的代码的脚本。如何防止vim执行此操作 在my.vimrc()中,我有以下内容: filetype plugin on set copyindent 也就是说,我没有使用任何语法感知的自动缩进,因为我还没有找到一个能满足我所有要求的自动缩进。建议如下: inoremap <CR> <CR>x<BS> inoremap x 因为如果

当光标放在只包含空格字符的行末尾时,当我按enter键时,vim将删除该空格。我觉得这很烦人,因为它破坏了我选择缩进到相同级别的代码的脚本。如何防止vim执行此操作

在my.vimrc()中,我有以下内容:

filetype plugin on
set copyindent
也就是说,我没有使用任何语法感知的自动缩进,因为我还没有找到一个能满足我所有要求的自动缩进。

建议如下:

inoremap <CR> <CR>x<BS>
inoremap x
因为如果在行中输入了某些文本,即使该文本已被删除,缩进也不会被删除

[编辑-毫米]

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

inoremap <CR> <CR>x<BS>
nnoremap o ox<BS>
nnoremap O Ox<BS>
inoremap x
诺雷奥克斯地图
诺雷奥克斯地图

同样的想法,但对vim较新的人可能不会很快理解。

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

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

我同意,但这似乎足够安全。如果您只想对某些文件类型(例如Python文件)启用此行为,请记住“autocmd FileType”命令。例如“autocmd文件类型python inoremap x”满足了我的需要。哪部分是什么意思?