我最近打开 vim 时开始出现这个错误,但我不知道为什么。
Error detected while processing /usr/share/vim/vim73/menu.vim:
line 352:
E327: Part of menu-item path is not sub-menu
Press ENTER or type command to continue
我从未编辑过该文件,也不太明白哪里出了问题。以下是导致错误的部分:
349 " define all the submenu entries
350 let s:idx = 100
351 for s:name in s:names
352 exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
353 let s:idx = s:idx + 10
354 endfor
355 unlet s:name s:names s:n s:idx
有人知道怎么修复吗?谢谢!顺便说一句,我使用的是 OS X 10.8 和 Vim 7.3
答案1
阅读脚本后我们发现:
" get NL separated string with file names
let s:n = globpath(&runtimepath, "colors/*.vim")
let s:names = sort(map(split(s:n, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
" define all the submenu entries
let s:idx = 100
for s:name in s:names
exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
let s:idx = s:idx + 10
endfor
unlet s:name s:names s:n s:idx
现在,如果你看一下s:names
,它正在迭代s:n
,这是运行时路径上的颜色目录中包含的所有 vim 文件的列表。调试问题的第一步是将所有自定义颜色文件移开,然后打开 vim... 宾果,没有错误消息。现在只需找出哪个颜色文件导致了错误。
有趣的是,我的颜色文件中有一个名为的颜色文件blackboard.vim.vim
,我猜这是有问题的文件,结果果然如此。删除该文件解决了问题。