vim 配置中出现“菜单项路径的一部分不是子菜单”错误

vim 配置中出现“菜单项路径的一部分不是子菜单”错误

我最近打开 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,我猜这是有问题的文件,结果果然如此。删除该文件解决了问题。

相关内容