Vim + ALE + Redpen で行うかんたん校正

技術的な文章を書いていく上で簡単に日本語のチェックをしたいので Redpen を導入しています。
先日道入した neovim + ale 環境においても構成することが出来ます。

language Tools
AsciiDoc alex !!, proselint, redpen, write-good
Markdown alex !!, mdl, prettier, proselint, redpen, remark-lint !!, vale, write-good
Re:VIEW redpen

README をみると標準で md や adoc には redpen が利用できる事がわかります。

実際に neovim + ale で Redpen が導入されてると即座にチェックが入り動作する事がわかります。
しかし、vim + ale で実行された redpen は設定ファイルなしのディフォルトで検査されてしまい日本語の理解をしていません。

redpen はカレントディレクトリに redpen-conf.xml があると優先的に利用してくれるのでチェックをしたい場合にはこちらを設定しておく必要があります。 http://redpen.cc/docs/latest/index_ja.html

<redpen-conf lang="ja">
    <validators>
        <!--Rules on sentence length-->
        <validator name="SentenceLength">
            <property name="max_len" value="100"/>
        </validator>
        <validator name="CommaNumber"/>
        <validator name="HeaderLength"/>

        <!--Rules on expressions-->
        <validator name="SuccessiveWord" />
        <validator name="JapaneseStyle" />
        <validator name="InvalidExpression" />
        <validator name="JapaneseExpressionVariation" level="Info"/>
        <validator name="DoubleNegative" />
        <validator name="Okurigana"/>
        <validator name="JapaneseNumberExpression"/>
        <validator name="JapaneseAmbiguousNounConjunction" />
        <validator name="JapaneseJoyoKanji" />
        <validator name="LongKanjiChain" />
        <validator name="DoubledConjunctiveParticleGa" />
        <!--<validator name="SuggestExpression" />-->

        <!--Rules on symbols and terminologies-->
        <validator name="InvalidSymbol"/>
        <validator name="KatakanaEndHyphen"/>
        <validator name="KatakanaSpellCheck" level="info"/>
        <validator name="SpaceBetweenAlphabeticalWord" />
        <validator name="ParenthesizedSentence">
            <property name="max_count" value="3"/>
            <property name="max_nesting_level" value="1"/>
            <property name="max_length" value="10"/>
        </validator>

        <!--Rules on sections and paragraphs-->
        <validator name="SectionLength">
            <property name="max_num" value="1500"/>
        </validator>
        <validator name="EmptySection" level="Info"/>
        <validator name="GappedSection" />
        <validator name="SectionLevel" />
        <validator name="ParagraphNumber"/>
        <validator name="ListLevel" />

        <!--Load JavaScript validators-->
        <validator name="JavaScript" />
    </validators>
</redpen-conf>

私の環境の場合、 /usr/local/Cellar/redpen/1.10.1/libexec/conf/redpen-conf-en.xml が redpen コマンドのディフォルト設定となっています。
これ以外のパスでの優先的な走査はないようなので vim+ale で実行されるディフォルトの設定はこちらが参照されます。このファイルが英語を見てしまっているのでちょっと困りものです。 https://github.com/w0rp/ale/blob/master/ale_linters/markdown/redpen.vim を見ても -c のしていはないので標準側をウワがいておくくらいしかなさそうですね。

ということで強制的に

cd /usr/local/Cellar/redpen/1.10.1/libexec/conf/
cp redpen-conf-en.xml redpen-conf-en.xml.bak
cp redpen-conf-ja.xml redpen-conf-en.xml

としておきます。 brew upgrade redpen したあとは再度確認が必要です。

これで対象の md や adoc ファイルと同じ場所に redpen-conf.xml がない場合にはディフォルトを確認し、あれば優先的にカレントの設定ファイルが参照されます。結構ケアレスミスを含んだ文を書いてしまうので機械的なチェックだけでもされていると助かります。本当はもっと日本語を理解した 赤ペン がされると嬉しいのですね。

いまは、vim + ale の場合には textlint とか prh は利用できないのですがこちらも見ていきたいです。

ちなみにこのブログの文章を textlint で検査したら

❯❯❯ ./node_modules/.bin/textlint sample.md

/Users/hideaki/Desktop/メモ/sample.md
  16:50  error    一文に二回以上利用されている助詞 "が" がみつかりました。
  59:39  ✓ error  ディフォルト => デフォルト 
  74:29  error    本文: "である"調 と "ですます"調 が混在
=> "であれどされていると助かります" がである調
Total:
である  : 1
ですます: 4

との結果がでました。

上部へスクロール