This Vim plug-in collects all grammar mistakes (of the currently open file) found by LanguageTool into the quickfix (or local) list from which they can be jumped to.
If you already have LanguageTool installed and start it in the command line by an executable, say
/usr/bin/langtool, then add to your
vimrc the line
let g:langtool_cmd = '/usr/bin/langtool'
Otherwise, download and unpack LanguageTool, say into the folder
~/LanguageTool, and add to your vimrc the line
let g:langtool_jar = '~/LanguageTool/languagetool-commandline.jar'
where the right-hand side,
~/LanguageTool/languagetool-commandline.jar, is the path of the file
populates the location-list with all grammar mistakes found by LanguageTool.
The (location-list) window that lists them can then be opened by
:lwindow and they can be jumped to by
(Have a look at vim-unimpaired to use convenient mappings instead).
LanguageTool runs in the background by Vim's job feature, provided a custom
:Make command exists, such as
that of vim-dispatch or,
that defined by
command! -bang -nargs=* -complete=file Make AsyncRun<bang> -auto=make -program=make
The (quickfix) window that lists the grammar mistakes can then be opened by
:cwindow and they can be jumped to by
To automatically open the location-list window after
autocmd QuickFixCmdPost lmake lwindow to your
autocmd QuickFixCmdPost make cwindow if the
:Make command exists.
To automatically run
LangTool after saving the modifications to a text, mail or markdown file, add to your
autocmd FileType text,mail,markdown autocmd BufWrite <buffer=abuf> LangTool
Command-line parameters can be passed to
LanguageTool by the global variable
g:langtool_parameters and the buffer-local variable
let g:langtool_parameters = ''
let b:langtool_parameters = '--autoDetect'
For example, the mother tongue can be set and (categories of) rules enabled and disabled by adding to your
let s:enablecategories = 'CREATIVE_WRITING,WIKIPEDIA' . let s:enable = 'PASSIVE_VOICE,TIRED_INTENSIFIERS' let s:disable = 'REPEATED_WORDS,REPEATED_WORDS_3X' let g:langtool_parameters = ' --mothertongue de' . \ ' --enablecategories ' . s:enablecategories . \ ' --enable ' . s:enable . \ ' --disable ' . s:disable
:LangTool sets the language that LanguageTool will use to that used by Vim to spellcheck by
let b:langtool_parameters = '--language ' . &l:spelllang
To avoid that the file is saved before LanguageTool checks it for mistakes,
let g:langtool_save = 0
To avoid empty lines in the quickfix list, add
let g:asyncrun_trim = 1 to your
Other options, such as
g:asyncrun_save might be of interest.
This Vim plug-in is simpler than vim-LanguageTool and vim-grammarous.
In particular, it lets Vim parse the
LanguageTool output to stdout via an appropriate value of
(Whereas both cited plug-ins implement their proper parser for the deprecated
XML output format of