I'm using Ale and Syntastic mainly because Rust Ale support is not very good yet. In my case I'm using vim-plug package manager, I setup so that it will not enable any of these automatically. I use a toggle strategy instead.
In my case I want Ale by default, and Syntastic for Rust
In plugin portion of vimrc I did this
Plug 'w0rp/ale', { 'on': 'ALEToggle' }
Plug 'vim-syntastic/syntastic', { 'on': 'SyntasticToggleMode' }
Afterwards I set a bind to enable linter, (I use l as mnemoic for linter)
nnoremap <leader>l :ALEToggle<CR>
For Rust I override the same bind
au FileType rust noremap <buffer> <leader>l :SyntasticToggleMode<CR>
Also I had to remove the statusline stuff from my vimrc otherwise I get errors when loading it with Syntastic disabled
" Syntastic stuff
"set statusline+=%#warningmsg#
"set statusline+=%{SyntasticStatuslineFlag()}
"set statusline+=%*
let g:rustfmt_autosave = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" Syntastic stuff
Regards
let g:syntastic_disabled_filetypes=['html']
– Archdeaconry