我在Vim中遇到Pascal自动缩进问题。
begin
writeln('Hello World');
end.
Vim不缩进end.
。但是,如果end;
它正确缩进。
当我执行gg=G
时,整个代码正确缩进。有没有办法让Vim在运行中使用像gg=G
“这样的命令?”
答案 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}
将转到文件的末尾。所以我们重新整理了整个文件。