Vim
首发于Vim
又一个代码异步检测插件 ALE

又一个代码异步检测插件 ALE

知名的 vim 代码检测插件并不少,例如大名鼎鼎的 syntastic,以及最早开始支持异步检测的 neomakeale 作为一个刚刚完成不久的后起之秀,又有什么特别的优势呢?

  • 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。
  • 并发运行。ale 默认使用所有可用的检测工具并发执行检测,譬如说我们有时需要同时对 javascript 运行 eslint 以及 jscs。
  • 标识栏、状态栏以及命令行消息支持。

同其它检测插件一样,ale 已经内置了大量的检测工具支持。以下是一些常用的设置:

  • 保持侧边栏可见:
let g:ale_sign_column_always = 1
  • 改变错误和警告标识符:

let g:ale_sign_error = '>>'
let g:ale_sign_warning = '--'
  • 添加状态栏信息:

%{ALEGetStatusLine()}
  • 改变状态栏信息格式:
let g:ale_statusline_format = ['⨉ %d', '⚠ %d', '⬥ ok']
  • 改变命令行消息:
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
  • 添加检测完成后回调:

augroup YourGroup
    autocmd!
    autocmd User ALELint call YourFunction()
augroup END
  • 自定义跳转错误行快捷键:
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)

相比与之前各种问题的 neomake,本人暂时还没有发现 ale 的 bug,如果你也是 vim8 或者 neovim 的用户,不妨尝试一下。顺带一提的是,ale 仅支持解析新版 vint 的输出,如果你用的老版本,请注意升级。

Happy vimming.

编辑于 2016-10-31

文章被以下专栏收录

    最前沿的Vim资讯,实用的Vim配置技巧,操作技巧,插件推荐.