Vim:Pascal autoindent

时间:2014-07-04 21:58:30

标签: vim indentation pascal

我在Vim中遇到Pascal自动缩进问题。

begin
    writeln('Hello World');
    end.

Vim不缩进end.。但是,如果end;它正确缩进。

当我执行gg=G时,整个代码正确缩进。有没有办法让Vim在运行中使用像gg=G“这样的命令?”

1 个答案:

答案 0 :(得分:3)

是的,似乎是疏忽。 (您应该提交错误报告,您可以在位于$VIMRUNTIME/indent/pascal.vim的文件顶部找到脚本的维护者)

您只需将=end.追加到indentkeys即可。 indentkeys控制vim何时尝试重新加入当前行。为此,将setlocal indentkeys+==end.添加到文件~/.vim/after/indent/pascal.vim(如果文件和目录不存在,则需要创建文件和目录)

此文件将在正常的缩进脚本获取后获取,这是您想要的。

查看:h indentkeys:h after


旁注:gg=G重新整理整个文件,但它不是一个命令。它实际上是两个不同的。 gg移动到文件顶部,={motion}从当前行重新移动到动作结束。在这种情况下,{motion}将转到文件的末尾。所以我们重新整理了整个文件。