Lendo o script que temos:
" 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
Agora, se você olhar para s:names
, estará iterando sobre s:n
, que é a lista de todos os arquivos vim contidos nos diretórios de cores no caminho do runtim. Meu primeiro passo para depurar meu problema foi mover todos os meus arquivos de cor personalizados para fora do caminho, e abrir o vim ... bingo, sem mensagem de erro. Agora era apenas um caso de descobrir qual arquivo de cor estava causando o erro.
Curiosamente, eu tinha um arquivo de cor chamado blackboard.vim.vim
em meus arquivos de cores, eu imaginei que esse era o arquivo ofensivo, e eis que era. Remover o arquivo resolveu o problema.