Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Vim中设置特定于缓冲区的变量_Vim - Fatal编程技术网

在Vim中设置特定于缓冲区的变量

在Vim中设置特定于缓冲区的变量,vim,Vim,如果未使用以下autocmd定义局部变量,我将尝试将缓冲区局部变量设置为全局变量 au BufEnter * if !exists('b:Variable') | let b:Variable = g:Variable | endif 但是,b:变量尚未定义。我在这里做什么 编辑:要重新措辞/澄清,b:文件中正在使用变量。错误在于没有定义b:变量。首先,您的自动命令是正确的。它应该会起作用 我看到了它可能失败的一些原因: g:未定义变量 事件已禁用,请参阅:帮助事件忽略这不太可能 vim版本不

如果未使用以下autocmd定义局部变量,我将尝试将缓冲区局部变量设置为全局变量

au BufEnter * if !exists('b:Variable') | let b:Variable = g:Variable | endif
但是,b:变量尚未定义。我在这里做什么


编辑:要重新措辞/澄清,b:文件中正在使用变量。错误在于没有定义b:变量。

首先,您的自动命令是正确的。它应该会起作用

我看到了它可能失败的一些原因:

g:未定义变量 事件已禁用,请参阅:帮助事件忽略这不太可能 vim版本不支持自动命令功能,这也不太可能:版本必须列表+自动MD。 我最喜欢的:自动命令没有来源。您确定您的自动命令处于活动状态吗? 什么是

:verbose autocmd BufEnter

说什么?如果未列出自动命令,则该命令不处于活动状态

或者尝试更简单的方法,提供直接反馈,看看BufEnter的自动命令是否正常工作。比如说

:au BufEnter*已输入回声缓冲区


首先,您的自动命令是正确的。它应该会起作用

我看到了它可能失败的一些原因:

g:未定义变量 事件已禁用,请参阅:帮助事件忽略这不太可能 vim版本不支持自动命令功能,这也不太可能:版本必须列表+自动MD。 我最喜欢的:自动命令没有来源。您确定您的自动命令处于活动状态吗? 什么是

:verbose autocmd BufEnter

说什么?如果未列出自动命令,则该命令不处于活动状态

或者尝试更简单的方法,提供直接反馈,看看BufEnter的自动命令是否正常工作。比如说

:au BufEnter*已输入回声缓冲区


错误信息是什么?您是否定义了g:变量?错误消息是什么?您定义了g:变量了吗?好的,我实际上在文件中使用了b:变量,BufEnter在输入缓冲区后执行。因此,我得到了错误。我真正想要的是类似于BufEnterPre的东西。用BufReadPre替换autocmd中的BufEnter,现在一切都在悄然进行:好的,我实际上在文件中使用了b:Variable,BufEnter在输入缓冲区后执行。因此,我得到了错误。我真正想要的是类似于BufEnterPre的东西。用BufReadPre替换autocmd中的BufEnter,现在一切都在悄无声息地进行: