インストールメモ:Ng with utf8 patch

2009年12月。
Cygwin 環境と debian (lenny) 環境にそれぞれ、 utf8 パッチを当てて Ng (Nihongo Micro GNU Emacs) をインストールした時の自分用覚え。

Win32 版 Ng も別途存在するようだが、ここでは cygwin 上で作成。

うろ覚え・ウソを書いてる可能性があるので注意。 間違いがあったらご容赦。

感謝と共に参照した先


Cygwin 上にインストール

何も考えず、tar を解いてパッチを当てて ./configure; make; で作成。

tar xzf ng-1.5beta1.tar.gz
gzip -d ng-1.5beta1-utf8.patch.gz
cd ng-1.5beta1
patch -p0 -d . <../ng-1.5beta1-utf8.patch
./configure
make

リンクの際に tputs やらのシンボルが見つからねーとかでエラーになる場合、 何かライブラリが足りてないので、 Cygwin の setup.exe で探して入れておく。 とりあえず足りてなさそうに見えたものを闇雲に入れたので何が不足だったのかは不明。 なんとも役に立たんメモだ…。 (たぶん、 libncurses-devel あたりだと思う)

make install の時に、 root っちゅーユーザや wheel っちゅーグループはねぇよ、 とか、 ディレクトリ掘れないよ (/usr/local/share が存在してない場合)、 とか怒られるので、 事前に適宜 Makefile を修正しておく。
(wheel はともかく root がないのは Cygwin の設定にもよるかも。あまり考えずに使っているので…)

Makefile の修正部分↓ (-g は Administrators でない方がいいのかも…? まあどうせ自分しか使ってない環境だし何でもいいか)

install:
	$(INSTALL) -m 755 -o Administrator -g Administrators $(PROG) $(BINDIR)
	mkdir -p $(SHAREDIR)
	$(INSTALL_DATA) -o Administrator -g Administrators docs/* $(SHAREDIR)
	$(INSTALL_DATA) -o Administrator -g Administrators bin/* $(SHAREDIR)

最後に設定ファイル .ng を作成。 ワシの場合以下のようにしている。 (一部 Micro EMACS 互換のキーバインドのため)
(set-kanji-input-code 'shift-jis)」と 「(set-kanji-display-code 'shift-jis)」は、 表示時や Shift JIS のファイルを読み込む時の文字化け対策として。 (cygterm の文字コード設定にもよると思うが)

(global-set-key "\^h" 'delete-backward-char)
(global-set-key "\^[h" 'help-help)

(global-set-key "\^z" 'scroll-down)
(global-set-key "\^[z" 'suspend-emacs)

(global-set-key "\^[a" 'apropos)

(next-line-add-newlines nil)

(set-kanji-input-code 'shift-jis)
(set-kanji-display-code 'shift-jis)

(global-set-key ")" 'blink-matching-paren-hack)
(global-set-key "}" 'blink-matching-paren-hack)
(global-set-key "]" 'blink-matching-paren-hack)

(make-backup-files nil)

(set-c-tab-width 8)
(set-c-indent-level 8)

Debian (lenny) へのインストール

環境は、OpenBlockS 266 上および玄箱HG 上にインストールした debian lenny。 いずれもデフォルト文字コードが EUC-JP (従って teraterm のコードも EUC-JP) の環境。

apt パッケージから ng をインストール済だった場合は事前に削除しておく。

aptitude purge ng-cjk ng-common

↑(普段 apt-get を使っている場合は apt-get で)

makeは 基本的に Cygwin へのインストール時と同じ。

リンクの際に tputs とかのシンボルが云々とエラーが出た場合は、 apt で libncurses-dev (と ncurses-dev ?) をインストールする。

make install の前に Makefile を一部修正。 (-g wheel グループはないと怒られるので、 -g root に書き換えておく)

.ng ファイルも Cygwin の時とほぼ同じだが、 EUC-JP ベースの環境の場合は

(set-kanji-input-code 'shift-jis)
(set-kanji-display-code 'shift-jis)

(set-kanji-input-code 'euc-jp)
(set-kanji-display-code 'euc-jp)

に。UTF8 ベースの環境の時は、該当部分はとっぱらえばいいかな?

なおこの utf8 パッチ版 ng では、 ファイル読み込み時の文字コード判別で EUC-JP よりも UTF8 の方を優先させるので、 EUC-JP のテキストを読み込む機会が多い場合は若干煩わしいかも。 そういう場合は例えば
alias nge='ng -E'
など適当に工夫してしのぐ。
たまに -E オプションをつけても EUC-JP のファイルを UTF8 と判定して化け化けになることがあるが、 そういう場合は他の vim を使うとかしてしのぐ。メンドくさいけど。


目次へ