neomake-autolint


Ⅰ. 插件描述

Lint as you type using Neomake

Ⅱ. 基本信息

创建日期:  2016-11-04
使用用户:  2
Github星:  35
插件作者:  Nader Akoury

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'dojoteef/neomake-autolint'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'dojoteef/neomake-autolint'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'dojoteef/neomake-autolint'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/dojoteef/neomake-autolint

Ⅳ. 文档说明

# Neomake Autolint

DEPRECATED

[Neomake] has this functionality built-in now, hoorah!

What are you doing still rummaging around this old crusty plugin?! If you're
feeling nostalgic for the short-lived wonder of Neomake Autolint read on!

Neomake Autolint leverages [Neomake]'s ability to asynchronously run linters on
a file. It augments that functionality with the ability to run file level
linters as you type so you get the most immediate feedback. This requires your
version of [Vim] or [Neovim] to support job control, otherwise the plugin will
be disabled. Thanks goes out to the team of Neomake for making a great plugin!

Requirements

Since Neomake Autolint is built upon [Neomake] the requirements for Neomake
Autolint are the same as [Neomake]'s requirements for async support. While it
may be possible to use this plugin without async support by setting
g:neomake_autolint_enabled manually it is not something that will be actively
supported.

For more details see Neomake's requirements.

Installation

[Neobundle] / [Vundle] / [vim-plug]

NeoBundle 'neomake/neomake'
Plugin 'neomake/neomake'

NeoBundle 'dojoteef/neomake-autolint'
Plugin 'dojoteef/neomake-autolint'

Plug 'neomake/neomake' | Plug 'dojoteef/neomake-autolint'

[pathogen]

git clone https://github.com/neomake/neomake ~/.vim/bundle/neomake
git clone https://github.com/dojoteef/neomake-autolint ~/.vim/bundle/neomake-autolint

Advanced Customization

There may be times where a linter you use needs some tweaking for it to work
properly with the autolinting since it works by way of using a temporary file.
For example if you run [pylint] you may need to specify the $PYTHONPATH for
it to correctly infer imports. One way to do this is by using the autocommands
NeomakeAutolint or NeomakeAutolintSetup.

Following example usecase assumes your current working directory is the root of
the project you want to run [pylint] on.

" Correctly setup PYTHONPATH for pylint. Since Neomake-Autolint uses a
" temporary file the default PYTHONPATH will be in the temporary directory
" rather than the project root.
function! s:PylintSetup()
  " Store off the original PYTHONPATH since it will be modified prior to
  " doing a lint pass.
  let s:PythonPath = exists('s:PythonPath') ? s:PythonPath : $PYTHONPATH
  let l:path = s:PythonPath
  if match(l:path, getcwd()) >= 0
    " If the current PYTHONPATH already includes the working directory
    " then there is nothing left to do
    return
  endif

  if !empty(l:path)
    " Uses the same path separator that the OS uses, so ':' on Unix and ';'
    " on Windows. Only consider Unix for now.
    let l:path.=':'
  endif

  let $PYTHONPATH=l:path . getcwd()
endfunction

autocmd vimrc FileType python
      \ autocmd vimrc User NeomakeAutolint call s:PylintSetup()

Frequently Asked Questions (FAQ)

Neomake Autolint is not working.

There are a small number of issues that could cause Neomake Autolint to be

First verify that [Neomake] is installed. Neomake Autolint depends on Neomake
so if it is not installed Neomake Autolint will not work.

Check if your version of vim supports jobs and timers. You can verify this by
typing: :echo has('nvim') || has('job') && has('timers')

If you do not have job-control and still desire to run Neomake Autolint you
can override the default behavior by setting g:neomake_autolint_enabled to
1.

Another issue that could cause Neomake Autolint to be disabled is a missing
cache directory. In order to run a linter over the currently edited file it
needs to be saved to disk. Neomake Autolint saves those temporary files in the
directory as specified in g:neomake_autolint_cachedir. Please verify the
cache directory exists.

Can the sign column always be displayed?

See g:neomake_autolint_sign_column_always in the plugin documentation.

How can I configure Neomake Autolint to run a lint cycle on <X> event?

By default Neomake Autolint runs a lint cycle when text changes in a buffer
(whether or not the user is in insert mode), or when the buffer first becomes
visible on screen (the BufWinEnter event). If you wish to change this behavior
you can customize Neomake Autolint to execute a linting cycle when a specified
event occurs.

let g:neomake_autolint_events = {
      \ 'InsertLeave': {'delay': 0},
      \ 'TextChanged': {},
      \ }

The above configuration will only run the lint cycle

  • immediately on InsertLeave
  • on TextChanged with the default delay (see g:neomake_autolint_updatetime)

See g:neomake_autolint_events in the plugin documentation for more
information.

Plugin Documentation

For more detailed documentation, especially regarding configuration, please
refer to the plugin's help
(:h neomake-autolint.txt).

添加新评论