Vim退出,如果没有拼写错误

时间:2013-09-21 04:40:04

标签: vim

我有一批我要拼写检查的文件。当我遍历文件并使用以下命令打开每个文件时:

vi -c 'set spell' -c 'normal ]s' $file

如果文件没有任何拼写错误,那么我会听到一声嘟嘟声,然后按shift+z+z关闭文件并转到下一个文件。如果文件确实有拼写错误,那么我必须决定是否要更正拼写错误或将单词添加到.spl文件中。我不介意完成这部分任务,我更愿意做这部分,而不是自动将每个拼写错误的单词添加到.spl文件等。

但是我想更好地自动化这个,所以在没有拼写错误的情况下,文件会自动关闭并移动到下一个文件。这样,如果所有批处理文件中没有拼写错误,for循环可以在没有任何用户交互的情况下运行完成。

所以为了做到这一点,我需要一种方法来确定文件中是否有任何拼写错误。我怎样才能做到这一点? Vim显然知道怎么做,因为当没有任何拼写错误时,它会发出哔哔声。甚至更好的是,我可以使用什么单行代替我上面使用的单行,当文件中没有拼写错误时自动退出vim(否则允许用户注意拼写错误)然后手动关闭文件)?

解决方案:

@Ingo Karkat的SpellCheck插件完美地完成了这项任务。如果没有拼写错误,则命令:XitOrSpellCheck退出vim,否则不退出并突出显示第一个拼写错误的单词。所以这个插件和这一个命令完全解决了这个问题。

因此在安装SpellCheck插件后,上面单行的修复是:

vi -c 'XitOrSpellCheck'

1 个答案:

答案 0 :(得分:1)

我的SpellCheck plugin包含:BDeleteUnlessSpellError:WriteUnlessSpellError:WriteDeleteUnlessSpellError等命令,您可以轻松构建自己的命令。