Я использую Vim на Cygwin и недавно решил попробовать установить некоторые плагины.Я установил Vundle и смог запустить плагин vim-aviation, но по какой-то причине я не могу заставить Syntastic работать.
Мой vimrc:
set nocompatible
filetype off
set rtp+=c:/cygwin64/home/USERNAME/.vim/bundle/Vundle.vim
call vundle#begin('c:/cygwin64/home/USERNAME/.vim/bundle/')
Plugin 'VundleVim/Vundle.vim'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'vim-syntastic/syntastic'
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
call vundle#end()
filetype plugin indent on
Я считаю, что синтаксис загружен правильно, так как онобновления, когда я запускаю :PluginInstall
и :PluginUpdate
из Vim.
Когда я открываю файл .py с указанным выше .vimrc, я получаю следующую ошибку:
syntastic: error: checker python/python returned abnormal status 2
ОтОбнюхивая, я узнал, что из Vim в диагностике синтетических проблем может помочь следующее:
:let g:syntastic_debug=3
:w
:mes
Одна из частей :mes
возвращает
syntastic: 73.033500: checker output: ['C:\Python36\python.exe: can''t open file ''/home/USERNAME/.vim/
bundle/syntastic/syntax_checkers/python/compile.py'': [Errno 2] No such file or directory', '']
Через некоторое времябольше копания Я обнаружил, что моя переменная shellslash не может быть установлена, что приводит к тому, что пути к файлам Windows интерпретируются как пути к файлам UNIX (или наоборот).Другие люди сочли эту часть: mes return полезной:
syntastic: 72.928500: &shell = '/bin/bash', &shellcmdflag = '-c', &shellpipe = '2>&1| tee', &shellqu
ote = '', &shellredir = '>%s 2>&1', &shelltemp = 1, &shellxquote = '', &autochdir = 0, &shellxescape
= ''
Я добавил строку в свой .vimrc, set shellslash
, но после того, как я сохранил его и снова открыл vim, ничего не изменилось (я пытался добавить егов нескольких разных местах, например, перед установкой rtp, после вызова синтетического плагина и в самом конце).Я получил ту же ошибку, и когда я снова запустил приглашение: mes, в списке не было переменной слеша.Вывод выглядел в точности как выше.Я также попытался :set shellslash
изнутри Vim, и, хотя никаких ошибок не было, проблема осталась.
Последнее, о чем я мог подумать, это то, что Vim загружал другой файл .vimrc, поэтому я запустил: scriptnamesно он возвратил в верхнем ряду местоположение .vimrc, который я редактировал.
Так как мне установить слеш?Я считаю, что это может позволить Syntastic правильно работать в Vim на Cygwin.