我使用以下代码cc
在该行不为空时保留现有缩进,并在该行为空时使用计算的缩进(使用indentexpr
)。
function SmartCC()
if getline('.') !~# '\S'
return 'cc'
else
let spaces = repeat(' ', indent('.'))
return '0d$i' . spaces
endif
endfunction
nnoremap <expr> cc SmartCC()
我唯一遇到的问题是,与内置 不同的是,它会cc
插入“真实”空格而不是“暂定”空格,如果在该行上没有键入任何内容,则会自动删除这些空格。
有没有办法插入这样的暂定空格?
或者也许我想要实现的目标已经可以通过设置一些秘密选项来实现?
为了清楚起见,删除所有尾随空格的插件不是解决方案。