为什么我可以在单行中声明 if 但不能在 Vimscript 中声明函数?

Why I can declare if in single lines but not functions in Vimscript?

这很好用 :if 1 | echo 1 | endif 但是这不行 function! Bar() | endfunction

对我来说这似乎是完美的有效代码,不过我可以做到这一点

:function! Bar() [HIT ENTER]
endfunction

不是 |要分开指令吗?

Wasn't | suppose to separate instructions?

这取决于命令。一些以“bar”作为分隔符,另一些作为参数。特别是,:function 属于第二组,而 :endfunction 属于第一组。有关详细信息,请参阅 :h :bar