在Vim中使用smartindent的问题

前端之家收集整理的这篇文章主要介绍了在Vim中使用smartindent的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用smartindent的 vim中:

>在说出if语句后按Enter键
>输入{
>按两次Enter键
>输入}
>如果您点击↑并转到上一行,则会从空行中删除缩进.

甚至vim文档都说:

如果您没有在新行上键入任何内容,除了< BS>或CTRL-D然后键入< Esc>,CTRL-O或< CR>,再次删除缩进.

有没有办法保留这个缩进而不删除它?

使用Shift S开始编辑空白行(显然从命令模式).这将使用预期的缩进级别启动光标.

另一个没有回答问题的问题但总体来说是一个更好的解决方案:

在插入模式下键入左括号时,将插入一组匹配的大括号
并将光标放在中间的新行上.

:imap { {<CR>}<Esc>O

同样,这将自动插入匹配的parens和方括号.

:imap ( ()<Left>
:imap [ []<Left>

(剥离前导:添加到vimrc时.)

正如我对Victor的答案所评论的那样,更改Vim的缩进行为会在整个文件中留下包含无关空间的“空”行. IMO,这是完全无法忍受的.

猜你在找的Bash相关文章