Я следовал следующим двум урокам, чтобы попытаться настроить eslint
и Neomake
:
Итак, у меня есть следующие минимальные init.vim
call plug#begin('~/.vim/plugged')
Plug 'neomake/neomake'
call plug#end()
autocmd! BufWritePost,BufEnter * Neomake
let g:neomake_verbose=3
let g:neomake_open_list = 2
let g:neomake_javascript_enabled_makers = ['eslint']
" neomake
nmap <Leader><Space>o :lopen<CR> " open location window
nmap <Leader><Space>c :lclose<CR> " close location window
nmap <Leader><Space>, :ll<CR> " go to current error/warning
nmap <Leader><Space>n :lnext<CR> " next error/warning
nmap <Leader><Space>p :lprev<CR> " previous error/warning
Проблема заключается в том, что при сохранении Neomake
зависает следующее сообщение:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Если я запускаю эту команду вручную, nvim
например, так:
eslint -f compact /home/otis/Developer/test/index.js
Я получаю следующий вывод:
/home/otis/Developer/test/index.js: line 1, col 1, Error - Unexpected var, use let or const instead. (no-var)
/home/otis/Developer/test/index.js: line 1, col 5, Error - 'a' is defined but never used. (no-unused-vars)
/home/otis/Developer/test/index.js: line 1, col 9, Error - Strings must use singlequote. (quotes)
3 problems
Что хорошо, значит eslint
работает, но я ничего не получаю Neomake
.
Если я запускаю, :lopen
окно всплывает, а затем мгновенно закрывается, как показано ниже:
Мои знания vim
/ nvim
знания являются базовыми, поэтому, пожалуйста, укажите их в ответах.
neovim
quickfix
plugin-neomake
Отис Райт
источник
источник
autocmd! BufWritePost,BufEnter * Neomake
наaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
BufEnter, у меня нет:lopen
Neomake работает для этого буфера из - за autocmd для BufEnter. @Yonsy сниппет хорошо, но должно быть дополнительно ограничено JavaScript файлов только:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
Ответы:
Некоторая [слегка отредактированная] информация из комментариев:
источник
Это не совсем отвечает на ваш вопрос, но я обнаружил, что neomake лучше работает с eslint_d . У него есть приятный побочный эффект, что он должен делать линтинг быстрее.
Вы должны сначала установить eslint_d глобально (но все еще кажется , подобрать любой локальный
.eslintrc
файл):Затем добавьте следующую конфигурацию для neomake в ваш
init.vim
/.vimrc
:Для меня это было все, что мне было нужно, после перезапуска neovim и открытия запущенного файла javascript,
:Neomake
я получил предупреждения от eslint.источник