checksyntax


Ⅰ. 插件描述

Check a file's syntax when saving a file (php, ruby, tex ...) with vim

Ⅱ. 基本信息

创建日期:  2005-12-12
使用用户:  64
Github星:  94
插件作者:  Tom Link

Ⅲ. 安装方法

使用Vundle管理器安装

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

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

使用NeoBundle管理器安装

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

使用VimPlug管理器安装

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

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/tomtom/checksyntax_vim

Ⅳ. 文档说明

The checksyntax plugin runs an external syntax checker for the current buffer
whenever the buffer is saved (by calling the |:CheckSyntax| command). Syntax
errors are managed as location or quickfix lists. If any syntax error occurs,
the |location-list| is opened (users can redefine |CheckSyntaxFail()| to change
this behaviour). You can use any |location-list| related command to navigate
the list of syntax errors.

Most syntax checks can be run asynchronously (from Vim 8 onwards or, for
Vim 7, if the AsyncCommand plugin is installed).

Invocation~

Manual invocation:
By default, |:CheckSyntax| is mapped to <F5> (if not mapped already), and
automatically executed when saving the buffer. If multiple syntax checkers are
defined for the given filetype, this will by default invoke the preferred (see
|g:checksyntax#preferred|) or first good (i.e. installed) syntax checker for a
given filetype.

:CheckSyntax! (with the optional <bang>) or <C-F5> will run all supported
syntax checkers for a given filetype if multiple syntax checkers are defined
for a given filetype and if the software is installed on your computer.

Automatic invocation:
In order to automatically run a syntax check when saving a file, please set
|g:checksyntax#auto_filetypes| or |g:checksyntax#auto_enable_rx| to an
appropriate value. If |g:checksyntax#auto_enable_rx| is set to '.', which
matches all filetypes, automatic syntax checks are enabled for all supported

  1. Automatic checks are equivalent to running |:CheckSyntax| with no
    <bang>.

Supported filetypes~

The syntax checks are performed by external syntax checker. This software has
to be installed on your computer. Pre-defined syntax checkers are:

bash ... shellcheck, bash -n
c, cpp ... splint
haskell ... hlint, ghc-mod-check
html ... tidy
java ... jlint, checkstyle, pmd
javascript ... jshint, esprima, gjslint, jslint, jsl, pmd
lua ... luac (run luac -p)
perl ... perl (run perl -Wc)
php ... php (run php -l)
python ... pyflakes or pylint
r ... lintr
ruby ... ruby (run ruby -c)
tex, latex ... chktex (run chktex -q -v0)
typescript ... tsc
viki ... deplate
vim ... vint
xhtml ... tidy
xml, docbk ... xmllint, pmd

Checkers with support for many filetypes:

coala ... c, cpp, csharp, cmake, coffeescript, css, dart, fortran, go,

               haskell, html, java, javascript, jsp, tex, lua, markdown, 
               perl, php, python, r, rst, ruby, scala, scss, sh, sql, 
               swift, typescript, verilog, vhdl, vim, xml, yaml and maybe 
               others

Syntax checker definitions are kept in:
autoload/checksyntax/defs/{&filetype}.vim

Run this command to find out, which filetypes are supported: >

:echo globpath(&rtp, 'autoload/checksyntax/defs/*.vim')

Trouble shooting~

It's possible that a newer version of a linter changes its command-line
arguments or the output format in a way that breaks the checksyntax plugin.
Since I personally use only a small subset of the provided checkers, it's
likely that I won't notice the problem. If the checksyntax plugin doesn't seem
to work, please proceed as follows:

  1. Check if the errorformat is correctly defined. Look at either:

    • autoload/checksyntax/defs/LINTER.vim or
    • compiler/checksyntax/LINTER.vim.
      If the linter is defined as a compiler, you can try to invoke the compiler

manually: >

 compiler checksyntax/LINTER
 lmake
  1. Use :let g:checksyntax#debug = 2 to get a high level view of what is going
    on when you invoke |:CheckSyntax|.
  2. Install the tlib plugin (vimscript #1863 or
    https://github.com/tomtom/tlib_vim) and try: >
    :Tlibtraceset --file=checksyntax.log +checksyntax
    < Invoke |:CheckSyntax| and send me the resulting log file per e-mail. You

can use :CheckSyntax FILETYPE LINTER to invoke a specific syntax checker.


Install~

Edit the vba file and type: >

:so %

See :help vimball for details. If you have difficulties or use vim 7.0,
please make sure, you have the current version of vimball (vimscript

1502) installed or update your runtime.

Also available via git: http://github.com/tomtom/checksyntax_vim/

Optional enhancements~

If the quickfixsigns plugin (vimscript #2584) is installed, lines containing
syntax errors will be marked with signs.

The tinykeymap plugin (vimscript #4199) can be used to quickly move from one
issue to the next by using it's quickfix or location-list maps (see
|g:tinykeymap#map#qfl#map| and |g:tinykeymap#map#loc#map|).

For vim8+: Checks will be run asynchronously by default.

For vim7: If AsyncCommand (vimscript #3431) is installed, syntax checks can
be peformed asynchronously -- see also |g:checksyntax#run_alternatives|,
|g:checksyntax#run_all_alternatives| and |g:checksyntax#async_runner|. This
requires a version of vim with |clientserver| support and |v:servername| to be
set (for vim see also |--servername|).

License: GPLv3 or later
Install: See http://github.com/tomtom/vimtlib/blob/master/INSTALL.TXT
See http://github.com/tomtom for related plugins.

添加新评论