在某些文本编辑器(例如 Kate、gedit)中,当启用自动缩进时,按两次回车键将留下尾随空格(我想要的):
if (code) {
....
....|
}
而另一些则遵循编码标准,不允许出现尾随空格(即使在空白行中):
if (code) {
....|
}
让我恼火的是,如果我在自动缩进后按向上箭头,自动缩进就会丢失:
if (code) {
|
....
}
如果我运行 vim 和:set autoindent
,我会得到后一种行为。
我的问题是,如何设置 vim 来保留尾随空格而不是在未使用时自动删除它们?
答案1
看这个提示在vim
wiki 上了解如何正确缩进,即使对于空行也是如此。如果您只想保留之前的缩进(忽略vim
计算出的正确缩进),请使用let ind = indent(prevnonblank(v:lnum - 1))
同一 wiki 条目下的评论中解释的方法。
答案2
我发现此解决方案为我工作:
:inoremap <Return> <Space><BS><Return>
答案3
在我的.vimrc中:
" Change a blank line upon creation so that its leading spaces won't be removed
inoremap <Return> <Return><Space><BS>
nnoremap o o<Space><BS>
nnoremap O O<Space><BS>