我在 macOS 上使用zsh
。我有大约一百个 Markdown 文件,我想从命令行进行拼写检查。aspell
这似乎是正确的方法,但是我希望能够在到达最后一个文件末尾之前退出拼写检查。
我本以为这是一个常见的用例,但我看不出有什么办法可以做到这一点。aspell
每次只检查一个文件。有SO问题它提供了使用 shell 循环或 来循环遍历文件的解决方案find XXX -exec
。您可以使用b
或Ctrl-C来中止 中的单个文件aspell
。但即使您中止也会aspell
返回0
,所以我不能用它来检查用户是否要停止循环。
真的,我唯一想到的解决方案就是在每个文件之间输出一条确认行,询问用户是否要继续。我觉得这真的很麻烦,尤其是因为即使文件没有任何需要更正的拼写错误,它也会输出aspell
!
是否有某种方法可以确定用户已中止 aspell 会话(从而停止循环),或者在到达之前进行拦截Ctrl-以便脚本可以设置标志并在当前迭代结束时正常停止?如果有帮助的话,我很乐意使用 Python 来管理迭代。Caspell
另外,是否有更好的拼写检查工具,而不受现已有 25 年历史的拼写检查工具的局限性aspell
?