Eslint kullanırken neomake asılı


11

Denemek ve kurmak için aşağıdaki iki öğretici takip ediyor eslintve Neomake:

Yani şu asgari şeye sahibim 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

Sorun kaydettiğim zaman Neomakeaşağıdaki iletiyle askıda kalıyor:

Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js

Bu komutu manuel olarak nvimböyle çalıştırırsanız :

eslint -f compact /home/otis/Developer/test/index.js

Aşağıdaki çıktıyı alıyorum:

/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

Bu iyi bir şey olduğu anlamına gelir eslintama ben hiçbir şey geri alıyorum Neomake.

Çalıştırırsam :lopenpencere açılır ve hemen aşağıdaki gibi kapanır:

Pencere açılır sonra kapanır

Benim vim/ nvimbilgi yüzden yanıtlarda açık olun biraz basit.


senin değiştirmeyi deneyin autocmd! BufWritePost,BufEnter * Neomakeiçin augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END birçok anlayışımız yok BufEnter
Yonsy Solis

Aslında boş Hızlı düzeltme penceresinin nedeni bu olabilir. :lopenNeomake çalıştırdığınızda ekran kadranızda BufEnter için autocmd nedeniyle bu tampon için çalışır. @Yonsy snippet iyi, ancak ek olarak yalnızca JavaScript dosyalarıyla sınırlı olmalıdır:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

Yanıtlar:


1

Yorumlardan bazı [hafifçe düzenlenmiş] bilgiler:

Aslında boş Quickfix penceresinin nedeni bu olabilir. Çalıştırdığınızda ekran :lopenyayınınızda Neomake, BufEnter için autocmd nedeniyle bu tampon için çalışır. Ayrıca yalnızca JavaScript dosyalarıyla sınırlı olmalıdır:

augroup neomake
  au!
  autocmd BufWritePost *.js Neomake
augroup END

0

Bu tam olarak sorunuzu cevaplamıyor, ancak neomake'nin eslint_d ile daha iyi çalıştığını buldum . Astarı daha hızlı yapması hoş bir yan etkiye sahiptir.

Önce eslint_d'yi global olarak yüklemelisiniz (ancak yine de herhangi bir yerel .eslintrcdosyayı alıyor gibi görünüyor ):

npm install -g eslint_d

Ardından neomake için aşağıdaki yapılandırmayı init.vim/ cihazınıza ekleyin .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Neovim'i yeniden başlattıktan ve çalışan bir javascript dosyasını açtıktan sonra :Neomakebana gerekli uyarılar verdi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.