微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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,这是完全无法忍受的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐