- コマンドラインで日本語を - on Mac OS X 1(1)/11710 更新:2013/05/19

←Termnalと日本語文字コード変換のページへ

bashとtcshのページへ→


注意このページの内容については、何ら動作を保証するものではありません。使用するときは個人の責任でお願いします。

vimとnvi-m17n

さて、JTerminalを使うことでコマンドライン上に日本語を表示することはできるようになりましたが、では日本語で書かれた文章を編集するエディタはどうすればよいのでしょうか? まぁ、Terminal上のエディタを使わなくてもTextEditなどのGUIアプリを使えばよいわけですが、Terminal上で操作しているときはTerminal上で動くエディタが何かと便利です。

ということで、次はJTerminal上で使える日本語入力・表示可能なエディタの話です。

vim

Mac OS XにはEmacsがインストールされており、これを使えば日本語の表示・入力が一応できます。しかし、やはりもっと軽くて使いやすいvi系のエディタ(で日本語の通るもの)がほしいところです。

Mac OS X (10.3.*)には、viクローンとしてはかなり有名なvimもインストールされています。ところが、インストールされているvimはmultibyte=offで作られているらしく、うまく日本語が扱えませんので、ソースコードからbuild(make)します。次のような感じです。

  1. ftp://ftp.mx.vim.org/pub/vim/unix/あたりからvim最新版(ここではvim-6.3.tar.bz2とします)を拾ってきて、適当な場所に置く(*1)
  2. tarを使って、上記ファイルを展開する。
  3. vim63ディレクトリに移る。
  4. configureを動かす。
  5. makeを実行する。
  6. make installを実行する。
% ncftpget ftp://ftp.mx.vim.org/pub/vim/unix/vim-6.3.tar.bz2
    :
% tar xvfj vim-6.3.tar.bz2
    :
% cd vim63
    :
% env LDFLAGS=-bind_at_load ./configure --enable-multibyte --enable-xim --with-features=big
    :
% make
    :
% sudo make install
    :
%
"%"はプロンプトです。(以下同じ)
(*1) : ncftpgetはOS Xに標準では入っていませんので、finkなどを使ってインストールしておくと便利です。(もちろんcurlや普通にftpを使ってもよいですが。) なお、finkの使い方などは"X11 for Mac OS X"のページが便利です。

また、vim本体は/usr/local/binにインストールされますので、/usr/local/binにpathを通しておいたほうが便利です。
vim以外でも/usr/local/binにインストールされるソフトは多いですから、.tcshrcなどに書いておくのがよいと思います。

% echo 'set path = ( /usr/local/bin $path )' >> ~/.tcshrc
%

これで、vimを使って日本語の入力・表示が一応できるようになります。ところが文字コードが日本語EUCの場合、バックスペースキーの動きが少し変(漢字半分くらいカーソルが戻る。要するに1 byte単位で戻る感じ)になります。ということで、vimを使うならOS X付属のTerminal上で文字コードをUTF-8にして使った方がよいと思います。

また、vimをUTF-8で使いたいなら、~/.vimrcファイルに以下のように書いておくと便利です。

set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,euc-jp,iso-2022-jp,sjis
set langmenu=japanese

Terminalで日本語の表示・入力をするなら、"ターミナル -> ウィンドウ設定 -> エミュレーション -> 非ASCII文字をエスケープする"のチェックボックスのチェックを外しておいて下さい。

nvi-m17n

さて、日本語EUCでも(バックスペースの動作を含めて)正常に動作させるため、nviを元に日本語の表示・入力をできるようにした多国語化nvi (nvi-m17n) を使ってみたいと思います。vimのように色々な機能はいらないからシンプルで軽いものがよい、という人にも良いのではないかと思います。手順は以下の通りです。

  1. ftp://ftp.foretune.co.jp/pub/tools/nvi-m17n/あたりからnvi-1.79.tar.gz, nvi-1.79.m17n-20040401.diff.gzを拾ってくる。
  2. nvi-1.79.tar.gzを展開する。
  3. nvi-1.79ディレクトリに移動し、多国語化パッチ(nvi-1.79.m17n-20040401.diff.gz)をあてる。
  4. buildディレクトリに移動し、config.guess, config.subを/usr/libexecにあるもので置き換える。
  5. configureを実行する。
  6. makeを実行する。
  7. make installを実行する。
% ncftpget ftp://ftp.foretune.co.jp/pub/tools/nvi-m17n/nvi-1.79.tar.gz
    :
% ncftpget ftp://ftp.foretune.co.jp/pub/tools/nvi-m17n/nvi-1.79.m17n-20040401.diff.gz
    :
% tar xvfz nvi-1.79.tar.gz
    :
% cd nvi-1.79
% zcat ../nvi-1.79.m17n-20040401.diff.gz | patch -p0
    :
% cd build
% cp -pf /usr/share/libtool/config.guess .
% cp -pf /usr/share/libtool/config.sub .
% ./configure --enable-multibyte --disable-curses --disable-db --disable-re
    :
% make
    :
% sudo make install
    :
%

nviアプリは/usr/local/binに"vi"という名前でインストールされますので、元のvi (/usr/binに存在する)が起動しないように、path設定に/usr/local/binを(/usr/binより前に)加えておいて下さい。方法はvimの項で書いた方法と同じです。

また、日本語(主にEUC)の表示・入力ができるように、以下の設定を~/.exrcあるいは~/.nexrcファイルに書いておけばOKです。

set skipdisplay
set displayencoding=euc-jp
set inputencoding=euc-jp
set fileencoding=euc-jp
set autodetect=jp+