【问题标题】:Neovim Performing Unwanted Linting Without ConfigurationNeovim 在没有配置的情况下执行不需要的 Linting
【发布时间】:2018-05-01 00:39:19
【问题描述】:

我几个月来一直在使用带有 vim-plug 的 Neovim 没有问题,但是在更改我的项目设置后,Neovim 似乎正在调用 JSHint,尽管我从未告诉它调用 JSHint - 事实上,即使在之后删除 init.vim 中的所有配置,Neovim 仍然使用 JSHint 进行 linting。我之前的配置:

"
" vim-plug
"

call plug#begin('~/.cache/vim-plug')

" Plugins
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
" File Tree
Plug 'scrooloose/nerdtree'
" Executing build/syntax checking for projects
Plug 'neomake/neomake'
" JavaScript syntax
Plug 'pangloss/vim-javascript'
" Agda syntax
Plug 'derekelkins/agda-vim'
" Rust syntax
Plug 'rust-lang/rust.vim'
" Idris syntax
Plug 'idris-hackers/idris-vim'
" JSX syntax
Plug 'mxw/vim-jsx'
" Reason syntax + helpers
Plug 'reasonml-editor/vim-reason-plus'
Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'do': 'bash install.sh',
    \ }
" Optional 'multi-entry selection UI' for LanguageClient
Plug 'junegunn/fzf'
" Color schemes
Plug 'frankier/neovim-colors-solarized-truecolor-only'

call plug#end()

"
" General Config
"

" Custom Leader
let mapleader = ","

" Syntax highlighing
syntax enable

" Indent
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

" Show cursor line and column number
set ruler
" Show line number at beginning of each line
set number

" Syntax highlighing
syntax enable

" Indent
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab

" Color scheme
set termguicolors
colorscheme solarized
set background=dark

" Color scheme
set termguicolors
colorscheme solarized
set background=dark

" Recognize .vue as .html
au BufRead,BufNewFile *.vue setfiletype html
" Prolog is not perl
au BufRead,BufNewFile *.pl setfiletype prolog
" Agda
au BufNewFile,BufRead *.agda setf agda
" Use JSX in .js files
let g:jsx_ext_required = 0
" Support flow type annotations in js
let g:javascript_plugin_flow = 1

" Use system clipboard
set clipboard=unnamedplus

" Allow use of the mouse
set mouse=a

" Resizing buffers/splits shortcuts
nnoremap <silent> <Leader>h :vertical resize -5<CR>
nnoremap <silent> <Leader>j :resize -5<CR>
nnoremap <silent> <Leader>k :resize +5<CR>
nnoremap <silent> <Leader>l :vertical resize +5<CR>

"
" deoplete.nvim
"

call deoplete#enable()

"
" Neomake
"

autocmd! BufWritePost * Neomake

let g:neomake_javascript_enabled_makers = ['eslint']

"
" Language Client
"

let g:LanguageClient_serverCommands = {
    \ 'reason': ['ocaml-language-server', '--stdio'],
    \ 'ocaml': ['ocaml-language-server', '--stdio'],
    \ }

nnoremap <silent> gd :call LanguageClient_textDocument_definition()<cr>
nnoremap <silent> gf :call LanguageClient_textDocument_formatting()<cr>
nnoremap <silent> <cr> :call LanguageClient_textDocument_hover()<cr>

最小配置(仍然执行 linting)

call plug#begin('~/.cache/vim-plug')
" File Tree
Plug 'scrooloose/nerdtree'
call plug#end()

我也试过PlugClean。 Neovim 是否默认启用了 linter?如果是这样,我该如何禁用它们?

【问题讨论】:

    标签: javascript vim jshint neovim


    【解决方案1】:

    尝试在没有配置和插件的情况下启动 neovim - nvim -u NONE

    如果解决了它,那么插件文件仍在某处加载。 Vim 也可以加载 vim-plug 不知道的插件。加载插件的本机方式是 vim 将在您的 runtimepath 中搜索任何名为 plugin 的子目录,并获取其中找到的所有脚本(这就是 vim-plug 的工作方式,它只是将每个插件目录附加到运行时路径)。我的猜测是您在 ~/.config/nvim/plugin/ 中添加了一些内容并忘记了它(或您定义 XDG 的任何位置)

    您可以使用:set rtp?:echo &amp;rtp 检查您的运行时路径(rtp 可与runtimepath 互换)。更有用的是,您可以使用 :scriptnames 命令检查 neovim 提供的每个脚本,这应该可以帮助您查明任何意外情况。

    显然这一切都有帮助:

    :h -u
    :h 'runtimepath'
    :h plugin
    

    【讨论】:

    • Neovim 从我的全局 vimfiles (/usr/share/vim/vimfiles) 中获取文件——奇怪的是我之前没有看到这个问题!谢谢!
    • 要小心,这有几个原因让我担心:Neovim 不应该采购/usr/share/vim/vimfiles,除非你告诉它,这是 vim 运行时的一部分。等效位置是$XDG_DATA_DIRS/nvim/site(默认为/usr/share/nvim/site/usr/local/share/nvim/site。你确定你没有定义环境变量$VIM$VIMRUNTIME,使neovim 看起来在vim 的运行时而不是它自己的?其次,/usr/ 中的那些文件通常仅用于系统配置,只有你的发行版中的东西应该在那里。
    猜你喜欢
    • 1970-01-01
    • 2019-04-13
    • 2018-12-06
    • 1970-01-01
    • 2017-02-11
    • 2023-03-08
    • 2017-12-02
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多