Syntastic для Vim на Cygwin, невозможно установить оболочку - PullRequest
0 голосов
/ 21 сентября 2018

Я использую 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.

...