在 VIMRC 文件中自定义自动缩进设置

在 VIMRC 文件中自定义自动缩进设置

我在 .vimrc 文件中启用了自动缩进,但遇到了一个烦人的错误/功能。例如,当我按 3 次制表符并按下回车键时,新行也会按 3 次制表符输入。然后,当我再次按下回车键时,该新行也会缩进 3 次,这是应该的。当我返回上一行(2 个新行中的第一个)时,就会出现问题。VIM 会自动删除空格,因为它将其视为空行。

有没有办法阻止这种情况发生?我希望能够回到这样的编码:

功能测试(){ <return> <return>}<up> <right>

谢谢!

答案1

我不知道有什么选项设置可以让 Vim 自动保留这些行的前导空格。通常的解决方案是更改您的编辑风格,这样您就不会丢失这些空格,或者使用正常模式命令(例如),o或者O开始S新行以便自动完成缩进,或者在插入模式下使用 或 强制在当前行上Ctrl-T缩进Ctrl-F

但是,如果您确实想使用该特定的键序列并且不丢失缩进,那么我认为此映射将起作用。

:inoremap <Return> <Space><BS><Return>

通过在行上放置一个空格(或任何字符),然后按退格键覆盖它,您就是在告诉 Vim 这是一个非空行,并且它将保留前导空格。

答案2

重新映射 <Return> 或 <CR> 似乎很棒。但它确实有一个缺点:它使使用 Vim 的自动完成 (<Cn>) 更难。它还与依赖默认行为的插件发生冲突,例如超级标签

这一页:http://vim.wikia.com/wiki/Get_the_correct_indent_for_new_lines_despite_blank_lines 提供了另一种解决方案:添加一个函数来获得正确的缩进,尽管之前有空行。

相关内容