我的vim一直在纠正以前行的缩进?

时间:2015-01-20 14:51:51

标签: vim

当我编辑HTML时,我有时喜欢按如下方式排列属性声明:

<li class="dropdown"
    ui-route="..."
    ng-class="{active: $uiRoute}">
</li>

但是,当我在我的示例第2行的末尾并且我输入换行符时,vim似乎将第2行的缩进更正为第1行。这里有一个GIF,它正在发生:

GIF of the problem

我已启用autoindent但禁用它似乎没有帮助。

我可以告诉vim停止这样做吗?

1 个答案:

答案 0 :(得分:2)

这是因为您已设置filetype indent on并且已加载缩进文件:xml.vim

如果您将文件重命名为foo.vim.txtvim foo.vim.txt,则按Enter键时不会自动调整缩进。

更详细的信息:

在你$VIMRUNTIME/indent/xml.vim中,您可以找到:

setlocal indentkeys=o,O,*<Return>,<>>,<<>,/,{,}

也就是说,当您在<Return>文件中按xml时,会触发缩进调整。请阅读:h indentkeys了解详情。

如果您不希望在按<enter>时让vim重新缩进行,您可以尝试setlocal indentkeys -=*<Return>。如果您只希望它发生在某个文件类型上,即xml,您可以创建自动命令。

希望它有所帮助。

P.S。我刚发现你的文件可能是html文件,它是一样的。您可以查看$VIMRUNTIME/indent/html.vim,您也会在列表中看到<Enter>