vimで「E670: 1つの言語のヘルプファイルに複数のエンコードが混在しています」が出たら

vimのhelpタグでエラー

GitHubなどにあがっている人様のvimスクリプトを持ってきて、:NeoBundleInstallしとあとに、vimを開くと以下のようなエラーメッセージが表示されることがあります。

E670: 1つの言語のヘルプファイルに複数のエンコードが混在しています[/vim]

E670: Mix of help file encodings within a language:[/vim]

エラーの原因と対処

helptagの文字コード解釈に関するものだとはすぐわかったのですが、解決方法がなかなか分からず苦労しました。原因としては、vimのhelpの文字コード判定は1行目しか見ないようです。Vim は一行目にマルチバイト文字があるかどうかによってヘルプの文字コードを判定していますので(latin1 or utf-8)、jexファイルの一行目に適当な漢字を挿入すると解決するようです。

$ cd doc
$ vim -c 'argdo 1;/^$/d | 1s/$/ 和訳/ | update' -c 'q' *.jax
$ vim -c 'helptags .' -c 'q'