我最近开始使用vim 7(以前的vim 6)和smartindent设置。在大多数情况下,它的效果很好,尽管我习惯于在开放的大括号之后键入一个选项卡,几乎是有效的。
然而,有一件疯狂的行为。编辑shell脚本时,我尝试在当前的缩进级创建一个注释,但是smartindent与它无关。它坚持认为评论必须在0级(无缩进)。更糟糕的是,它打破了右派(‘>>’和朋友),使他们不工作。这是彻底的不服从,我想知道什么是最好的方法来解决它?
(我也不喜欢smartindent关于缩进的想法,如果。)
首选解决方案可以帮助我手动打嗝 – 我很懒。一个选项是“编辑shell脚本时关闭smartindent(将其留给休息)”。另一个选择是关于如何找到smartindent的控制脚本以及要编辑以更改不喜欢的特性的指导。最后的选择(我不需要关于如何做的建议 – 只是提示它是最好的,或者只是恢复理智的方式)是离开智慧未定。
我看到有关“(PHP and) annoying vim unindent rules”的模糊相关的问题;它不提供我直接的答案,但也许在这里提到的有关和相关的项目实际上是答案的一部分。
找到缩进文件(例如我的系统上的/usr/share/vim/vim71/indent/sh.vim)
这条线看起来像是这样的问题:
setlocal indentkeys-=:,0#
也许您可以在.vimrc中修复此问题,或手动加载自定义缩进文件。
编辑:它看起来比我想象的更复杂,但也许在缩进文件中有一些特定的设置,你需要修复。
第二次编辑:看起来我完全错了,看看:
Restoring indent after typing hash
要么
howto-configure-vim-to-not-put-comments-at-the-beginning-of-lines-while-editing