1

在一行autocmd InsertEnter <buffer> setlocal foo=bar中,是<buffer>setlocal多余的吗?以下各项之间的功能差异是什么?

autocmd InsertEnter <buffer> setlocal foo=bar

autocmd InsertEnter <buffer> set foo=bar

autocmd InsertEnter setlocal foo=bar

autocmd InsertEnter set foo=bar

此外,使用“本地到窗口”或“本地到缓冲区”而不是全局设置set之间有什么区别吗?setlocal

4

1 回答 1

3

<buffer>on autocommands 仅用于定义在注册自动命令时仅适用于当前缓冲区的自动命令。有些事件没有意义(如缓冲区创建事件)。

然后,有些选项是全局的,有些是缓冲区本地的,有些是窗口本地的。要准确了解,您必须深入研究他们的文档。有时我们可以为一个选项设置全局和本地设置。但是,IIRC 和我可能是错的,有些选项没有全局设置并且始终是本地的。

PS:多亏了你,我才发现:set {option}<。我期待它很久了,却没有意识到它的存在......谢谢:)

于 2017-02-28T10:28:22.000 回答