python 相关插件在 vim 中给出错误

python 相关插件在 vim 中给出错误

下面是一个存在 Python 问题的 vim 插件的示例:

Error detected while processing function UltiSnipsEdit:
line    6:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\2c.2c2c\.vim\bundle\ultisnips\plugin\UltiSnips\__init__.py", line 981, in file_to_edit
    os.mkdir(path)
WindowsError: [Error 3] The system cannot find the path specified: u'C:\\Users\\2c.2c2c\\vimfiles\\UltiSnips'
line   16:
E121: Undefined variable: file
E15: Invalid expression: ':'.mode.' '.file

vim 插件制作者都说这是你的 python 环境的问题。我拥有最新的 27x 和 3xx 版本的 python,并使用来自的预编译 vimhttp://tuxproject.de/projects/vim/。我卸载/重新安装了其中一个版本,安装了两个版本,设置了和没有设置路径。似乎没有任何效果。

:版本

返回两个版本的 python/dyn,尽管我已经尝试过更改路径/卸载-重新安装以使它们单独存在而不是单独存在等。看看是否有任何变化。此外,基本 python 似乎确实有效,我可以这样做

:python 打印(“你好”)

没有问题。

我也有点困惑为什么它要检查该目录...Vundle 会将其安装的任何东西的 rtps 添加到 ~/.vim/bundle/addon 中。

无论如何,我还没见过有人在 Windows 上遇到过这样的问题,所以这些信息都没什么用。任何帮助我都感激不尽。

答案1

错误源自文件files_to_edit()“C:\Users\2c.2c2c.vim\bundle\ultisnips\plugin\UltiSnips__init__.py”中的函数。给定一个文件类型(例如“markdown”),此函数会尝试找出系统中带有相应片段的文件(“markdown.snippets”)可能位于的位置。该函数检查几个地方:

  1. 如果全局变量g:UltiSnipsSnippetsDir存在,那么它会查找该文件夹
  2. 如果存在全局变量g:UltiSnipsSnippetDirectories,则它会遍历其中的项目rtp,从变量中附加目录,并查看生成的文件夹
  3. 如果以上均未设置,则它会遍历中的项目rtp,附加“UltiSnips”,并查看结果文件夹

根据您的错误信息

WindowsError:[错误 3] 系统找不到指定的路径:u'C:\Users\2c.2c2c\vimfiles\UltiSnips'

它最终选择了第三个选项。出于某种原因,它没有从 中选择正确的项目rtp。你可以做什么来解决这个问题,而不需要深入研究插件源代码并调试它,它g:UltiSnipsSnippetsDir明确地设置为片段存储的位置,即“C:\Users\2c.2c2c.vim\bundle\ultisnips\UltiSnips”。只需删除该行

let g:UltiSnipsSnippetsDir = "C:\Users\2c.2c2c\.vim\bundle\ultisnips\UltiSnips"

在你的 .vimrc 中的某个地方。

相关内容