Lisp読み書きできないけどEmacs使いたい

Emacs公式マニュアルを日本語化する

Emacsのマニュアルとは

Emacsには標準でマニュアルが用意されている。このマニュアルには膨大な量のEmacsに関する情報が記載されている。

便利は便利なのだが、如何せん英語で記述されている。初心者にとってはLisp+英語で厳しい面がある。

この記事ではマニュアルの日本語化に挑戦してみる。ただし、ちょっと大変だからゆっくりやっていこう。

なお利用する環境は以下の通りである。

こちらの記事を参考にさせてもらいました。

http://emacs.rubikitch.com/emacs245-manual-ja/

必要なコマンドを揃える

日本語のマニュアルを利用するにあたりmakeinfoコマンドが必要になる。Macには標準でこのコマンドがあるが、バージョンが古く--document-languageオプションが無い事がある。筆者のコマンドにはなかった。

$ makeinfo --version

makeinfo (GNU texinfo) 4.8

Copyright (C) 2004 Free Software Foundation, Inc.
There is NO warranty.  You may redistribute this software
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING.

下のコマンドを実行し、「General options」に--document-languageがあるか確認する。

makeinfo --help

あればそれを使う。なければbrewからインストールする。

makeinfoコマンドはtexinfoコマンドに付随してるらしいのでtexinfoをインストールする。

こちらを参考にさせてもらいました。

https://stackoverflow.com/questions/44379909/how-to-upgrade-update-makeinfo-texinfo-from-version-4-8-to-4-13-on-macosx-termin

brew install texinfo

インストールが終わったらシンボリックリンクをはる。これでシステムコマンドがbrewのコマンドになる。

brew ln texinfo --force

brew lnコマンドを実行すると以下のような情報が出ると思う。

Warning: Refusing to link macOS-provided software: texinfo
If you need to have texinfo first in your PATH run:
  echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile

そしたら、そこに表示されているechoコマンドを実行する。

echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile

別のターミナルを起動して、makeinfoコマンドをリロードして、再度makeinfoコマンドを確認する。

 $ makeinfo --version
texi2any (GNU texinfo) 6.7

Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

ヘルプを見ると、document-languageがあるはずだ。

makeinfo -help

日本語マニュアルをダウンロード

続いて日本語マニュアルを用意する。

ソースファイルはここに置かれている。

https://ayatakesi.github.io

今回はVer26.3を利用する。ファイルはいくつかあるけど、Texinfo sourceというのを利用する。

まず、~/emacs.dに移動する。

cd ~/.emacs.d

wgetでダウンロード。

wget https://ayatakesi.github.io/emacs/26.3/emacs-ja.texis.tar.gz

解凍する。

tar xzvf emacs-ja.texis.tar.gz

不要な圧縮ファイルを削除する。

rm -y emacs-ja.texis.tar.gz

準備ができました。

Emacsマニュアルの展開

解凍したフォルダに移動する。

cd emacs-ja.texis

makeinfoコマンドで日本語のマニュアルを生成する。

makeinfo --document-language=ja --no-split -o emacs263-ja.info emacs-ja.texi

f:id:nuy:20191211152521p:plain

emacs263-ja.infoというファイルが作られている。

これをEmacsで読み込み、正しく日本語が表示されるか確認してみる。
emacsを起動して、このコマンドでファイルをロードする。

C-u M-x info ↩︎(リターン) ~/.emacs.d/emacs-ja.texis/emacs263-ja.info

f:id:nuy:20191211152536p:plain

f:id:nuy:20191211152547p:plain

と、この様にばっちし日本語になっているはずだ。

常に日本語をロード

上のコマンドでは用意した日本語のドキュメントを明示的に読み込んだ。一方で、普通にemacsのマニュアルを開くと英語版が読み込まれてしまう。そこで、~/.emacs.d/init.elファイルに日本語のリファレンスへのパスを通してあげて常に日本語が開くようにする。

 (setq Info-default-directory-list
   (append Info-default-directory-list (list (expand-file-name "~/.emacs.d/emacs-ja.texis/"))))
 (defun Info-find-node--info-ja (orig-fn filename &rest args)
   (apply orig-fn
     (pcase filename
       ("emacs" "emacs263-ja")
       (t filename))
     args))
 (advice-add 'Info-find-node :around 'Info-find-node--info-ja)

ファイルを保存して再度Emacsを起動してC-h rでマニュアルを開くと日本語になっている。

余談

余談だけど、これさえもEmacsのヘルプの一部分なんだよね。マニュアルを開いた状態でuキーを押すと、1つ上の階層に行けるんだけど、そこに行くと他にも大量のドキュメントがあるのが分かるよね。

今、日本語化したのはこの中でも「Emacs」っていう項目のところだけ。

f:id:nuy:20191211152610p:plain