Итак, вот пример плагина 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. У меня есть последние сборки Python 27x и 3xx и я использую предварительно скомпилированный vim из http://tuxproject.de/projects/vim/. Я удалил / переустановил ту или иную версию, установил обе версии, как с заданными путями, так и без них. Ничто, кажется, не имеет эффекта.

:версия

возвращает python/dyn для обеих версий, хотя я перепутал с изменением путей / удалением-переустановкой, чтобы они оставались одни, а не одни и т. д. Чтобы узнать, что-то меняется. Кроме того, базовый питон, кажется, на самом деле работает, я могу сделать

:python print ("привет")

без проблем.

Я также немного сбит с толку, почему он проверяет этот каталог ... Vundle добавляет rtps в ~/.vim/bundle/addon для всего, что оно устанавливает.

В любом случае, я не видел никого с подобной проблемой в Windows, поэтому никакая информация не очень полезна. Любая помощь приветствуется.

1 ответ1

0

Ошибка происходит из функции 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .