如何在Vim中默认禁用ale插件?

11

我正在使用https://github.com/w0rp/ale插件。但它会使Vim变得不太响应… 我已经在<leader>l上绑定了ALETooggle

最好将其默认禁用,并在需要时通过键盘快捷方式启用,我尝试将ALEDisable放在我的.vimrc中,但是它给我以下错误:

Error detected while processing /Users/daniel/.vimrc:
line   94:
E492: Not an editor command: ALEDisable   
Press ENTER or type command to continue

这是一个会引发问题的 .vimrc 示例

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
Plugin 'w0rp/ale'
call vundle#end()            " required
filetype plugin indent on    " required

noremap <leader>l :ALEToggle<CR>
ALEDisable

你有没有看过vim的原生包管理器(例如:help pack-add),并考虑将其放置在opt文件夹中?这似乎会很好地工作。当然,你可以创建一个绑定来执行:packadd ale - Patrick Bacon
我正在使用Vundle来管理插件,包管理器是否会对在.vimrc中使ALEDisable起作用产生影响? - geckos
1
@geckos 的 ALEDisable 失败了,因为插件在 vimrc 之后加载。 - D. Ben Knoble
2个回答

19

ALE插件提供了一个名为g:ale_enabled的选项来默认禁用ALE,这样可以使插件管理器无关。

如果您将g:ale_enabled设置为0,则ALE将在任何缓冲区中被禁用。 此外,该插件还提供了一种基于文件名控制ALE可用性的选项。 以下是使用:h g:ale_enabled找到的示例:

" Disable linting for all minified JS files.
let g:ale_pattern_options = {'\.min.js$': {'ale_enabled': 0}}

当您想要启用ALE时,可以使用:ALEEnable:ALEToggle命令。


这非常有用。我现在正在使用vim-plug,它非常愉快,因为它使我的vi会话更加轻便。 - geckos
3
ALEToggle(大写T)--无法编辑,因为编辑必须超过6个字符 :)。翻译:ALEToggle(大写的T)--由于编辑必须超过6个字符,所以无法编辑。 - user3127882

2
最优雅的解决方案是使用更好的插件管理器,比如Plug或者Dein。为什么呢?因为它们得到很好的维护,比你目前使用的插件管理器要快和高效许多。最重要的是,它们支持轻松地懒加载插件。
对于你需要在映射上加载插件的目的,你可以选择以下操作:
Plug 'w0rp/ale', { 'on':  'ALEToggle' }  

或者
call dein#add('w0rp/ale',{'on_cmd': 'ALEToggle'})  

我想说的是,使用vim-plug或dein可能会更好。尽管vundle也可以实现相同的延迟加载,但是相信我,使用vim-plug或dein会更加快速和直观。


谢谢!我不知道Vundle很慢。 - geckos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接