Vim函数展开始终返回空字符串
这些天我发现当我在一些文件夹下打开vim时,函数Vim函数展开始终返回空字符串,vim,Vim,这些天我发现当我在一些文件夹下打开vim时,函数expand不能像预期的那样工作,它总是返回空字符串,结果,我的一些vim插件无法工作 可通过以下步骤再现此过程: # cd some_folder # vim :echo expand('123') # empty output here 并非所有文件夹都会发生这种情况,但我找不到这些文件夹的模式 我怀疑可能有一些插件覆盖了expand功能,但我不知道如何解决它 有人能提供一些关于如何调试此问题的线索吗?找到了根本原因,在我的vimrc中
expand
不能像预期的那样工作,它总是返回空字符串,结果,我的一些vim插件无法工作
可通过以下步骤再现此过程:
# cd some_folder
# vim
:echo expand('123') # empty output here
并非所有文件夹都会发生这种情况,但我找不到这些文件夹的模式
我怀疑可能有一些插件覆盖了expand
功能,但我不知道如何解决它
有人能提供一些关于如何调试此问题的线索吗?找到了根本原因,在我的vimrc中,我设置了:
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.o
然后,当我在路径中有
tmp
的文件夹中时,expand
将始终返回空字符串。谢谢你的帮助 插件不能覆盖expand
等函数。如:help:function
中所述,用户定义的函数必须以大写字母开头。您可以通过输入:function expand()
来确认这一点。由于可以重现问题,您可以尝试二进制搜索:移开一半插件,然后移开另一半插件,在问题发生时对出现的插件集重复此操作。你也可以对你的.vimrc
。你真的在使用expand('123')
?@FDinoff,我在使用echo expand('123')
,在其他文件夹下,这个命令可以输出123
@mMontu,谢谢你的解释,是的,expand
不能被覆盖。我会尝试你的建议,找出哪个插件/脚本导致了这个问题。很有趣。它甚至在:h expand()的第一句话中提到了它