如果未使用以下 autocmd 定义局部变量,我正在尝试将缓冲区局部变量设置为全局变量
au BufEnter * if !exists('b:Variable') | let b:Variable = g:Variable | endif
但是,b:Variable 没有得到定义。我在这里做错了什么?
编辑:为了改写/澄清,文件中使用了 b:Variable。错误是b:Variable is not defined
。
如果未使用以下 autocmd 定义局部变量,我正在尝试将缓冲区局部变量设置为全局变量
au BufEnter * if !exists('b:Variable') | let b:Variable = g:Variable | endif
但是,b:Variable 没有得到定义。我在这里做错了什么?
编辑:为了改写/澄清,文件中使用了 b:Variable。错误是b:Variable is not defined
。
首先,您的自动命令是正确的。它应该工作。
我看到了它可能失败的一些原因:
做什么
:verbose autocmd BufEnter
说?如果您的自动命令未列出,则它未处于活动状态。
或者尝试一些更简单并提供直接反馈的方法,以查看带有 BufEnter 的自动命令是否正常工作。例如
:au BufEnter * echom "缓冲区输入"