git://www.github.com/rhysd/vim-grammarous.git
git clone http://www.github.com/rhysd/vim-grammarous
$ svn co --depth empty http://www.github.com/rhysd/vim-grammarous
Checked out revision 1.
$ cd repo
$ svn up trunk
Vim grammarous是一个强大的Vim语法检查器。 只需做 :GrammarousCheck
查看强大的检查。 这里插件自动下载 LanguageTool插件,它需要 java5 + 。
这里插件可以在 Vim 8.0.27 ( 或者更高) 或者Neovim上使用作业功能。 它启用异步命令执行,因此在检查Vim8+或者Neovim上的检查之前不需要阻塞。
:[range]GrammarousCheck [--lang={lang}] [--(no-)preview] [--(no-)comments-only]
执行当前缓冲区( 当指定 [range]
时,目标是范围内的文本)的语法检查器。
请执行 :GrammarousCheck --help
以显示有关命令的更多详细信息。
:GrammarousReset
重置当前检查。
当光标移动到错误时,你可以在信息窗口中使用一些映射来显示错误的详细信息。
映射描述q | 退出信息窗口 |
<CR> | 移动到错误的位置 |
f | 自动将错误固定为 |
r | 删除错误而不修复 |
r | 禁用选中缓冲区中的语法规则 |
n | 移动到错误的下一个位置 |
p | 移动到以前的错误位置 |
? | 在信息窗口中显示映射的帮助 |
<Plug>
映射在任何位置执行操作vim-grammarous在正常模式下提供这些全局映射。 你可以通过 :nmap
将它们设置为你喜欢的键。 然而,上的映射足以处理语法错误。 并不总是必要的。
<Plug>(grammarous-move-to-info-window) | 将光标移动到信息窗口 |
<Plug>(grammarous-open-info-window) | 打开光标下错误的信息窗口 |
<Plug>(grammarous-reset) | 重置当前检查 |
<Plug>(grammarous-fixit) | 自动修复光标下的错误 |
<Plug>(grammarous-fixall) | 自动修复当前缓冲区中的所有错误 |
<Plug>(grammarous-close-info-window) | 从选中的缓冲区关闭信息窗口 |
<Plug>(grammarous-remove-error) | 移除光标下的错误 |
<Plug>(grammarous-disable-rule) | 禁用光标下的语法规则 |
<Plug>(grammarous-move-to-next-error) | 将光标移动到下一个错误 |
<Plug>(grammarous-move-to-previous-error) | 将光标移动到上一个错误 |
算子映射在文本对象指定的范围内检查语法错误。 当安装 vim-operator-user 时,这里映射可用。
映射描述<Plug>(operator-grammarous) | 对文本对象执行语法检查 |
grammarous
unite.vim-源如果你是用户,那么可以通过 grammarous
联合源代码incrementally查找和搜索错误列表。 对于列表的候选项,你可以执行与信息窗口中的操作相同的操作。 ( fixit
,remove error
和 disable rule
) 在已经检查的缓冲区中执行以下命令或者你想检查。
:Unite grammarous
grammarous
denite.nvim-源对于 denite.nvim 用户,可以使用 grammarous
denite源。 注意,这种类型目前设置为 file
,这意味着用户可以使用的动作只限于 open(jump), 预览,在缓冲区中的命令中执行的是 等等 。
:Denite grammarous
请使用 g:grammarous#default_comments_only_filetypes
例如以下设置使语法检查器只检查注释,但 Markdown 和vim帮助除外。
letg:grammarous#default_comments_only_filetypes = { '*' : 1, 'help' : 0, 'markdown' : 0, }
请使用 g:grammarous#disabled_rules
禁用特定规则。
例如下面设置将禁用每个文件的某些规则。 *
表示所有文件类型,help
表示vim帮助。
letg:grammarous#disabled_rules = { '*' : ['WHITESPACE_RULE', 'EN_QUOTES'], 'help' : ['WHITESPACE_RULE', 'EN_QUOTES', 'SENTENCE_WHITESPACE', 'UPPERCASE_SENTENCE_START'], }
当你禁用信息窗口中的规则时,则在 Vim 命令行 中显示规则名称 <Plug>(grammarous-disable-rule)
请使用 g:grammarous#use_vim_spelllang
。默认 0来启用 1.
<Plug>
映射。on_check
和 on_reset
可用。
例如以下设置在完成检查时将 <C-n>
和 <C-p>
映射定义为缓冲区本地映射。 重新设置检查时它们被清除。
letg:grammarous#hooks = {}function!g:grammarous#hooks.on_check(errs) abortnmap<buffer><C-n><Plug>(grammarous-move-to-next-error) nmap<buffer><C-p><Plug>(grammarous-move-to-previous-error)endfunctionfunction!g:grammarous#hooks.on_reset(errs) abortnunmap<buffer><C-n>nunmap<buffer><C-p>endfunction
g:grammarous#languagetool_cmd
可以用于以下目的。 如果将某个命令设置为 .vimrc
g:grammarous#languagetool_cmd
,vim grammarous不会安装自己的LanguageTool jar 并使用命令运行 LanguageTool 。
letg:grammarous#languagetool_cmd ='languagetool'
:GrammarousCheck
之后立即查看信息窗口中的第一个错误请将 g:grammarous#show_first_error
设置为 1
。 在 :GrammarousCheck
立即出现错误时,它会打开一个信息窗口。
这个插件尝试在第一次使用 curl
或者 wget
命令安装 LanguageTool 。 如果失败,你应该手动安装它。 请下载LanguageTool的zip文件并将它的解压缩到 path/to/vim-grammarous/misc
。
如果你找到了一些 Bug,请将它报告给发布页面。 欢迎请求。它们中的任何一个都不太短。
Copyright (c) 2014 rhysd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the"Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.