0

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

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'
4

1 回答 1

1

我的SpellCheck 插件:BDeleteUnlessSpellError, :WriteUnlessSpellError,:WriteDeleteUnlessSpellError等命令,您可以轻松构建自己的此类命令。

于 2013-09-21T14:57:59.967 回答