テキストエディタ選び

先日読んだ「プログラマが知るべき97のこと」という本に環境設定の重要性が書かれていまして、それに触発されて一番よく使うアプリケーションであるテキストエディタで一番良さそうなものを探してみることにしました。


OS
Mac OS X Leopard 10.5.8


要望
1. ある程度良く使うプログラミング言語C++,Java,Ruby,Python,Perl,Haskell)に色が付いてほしい。
2. 無料。
3. ある程度のショートカット機能。
4. タブ機能があるとbetter


一番ベーシックなテキストエディタWindowsでは「notepad.exe」、Mac OS Xでは「TextEdit.app」でしょうね。ただ、プログラミングをするならこれらのエディタでは色づけすらないので辛いです。

以下、使ってみたエディタを勝手にレビューしてみます。順番は僕が使った順番。僕のMacのOSが古いせいで最新のバージョンが使えていなく、皆さんの環境と違う場合もあると思います。あしからず。

1. CotEditor

http://sourceforge.jp/projects/coteditor/

B4の時に初めて今の教授と話した時に、TextEdit.appを使っていて、「何でそんなの使ってるの?CotEditorがいいよ」と言われて使い始めたエディタ。
バージョンは1.3.1です。

・長所
macで人気があるエディタだけあって抜群の安定感。多くの文字エンコードが簡単に行えるし、行末コードの指定まで簡単に出来る。
カラーリングもかなり豊富。HaskellとかeRubyまでカラーリング可能。

・短所
タブ機能がない。あと、多機能エディタと比べてしまうとキーバインドがやや少ないかも。

2. mi

http://www.mimikaki.net/

miって名前がスマートでかっこいい!と思っていたらmiは「ミミカキエディット」から来ているらしいです。バージョンは2.1.12r3。

・長所
タブ機能あり。undoとかがグラフィカルで使いやすい。
色々な機能がある(僕は使いこなせていないので分かりませんが)。

・短所
まず、初期設定の文字サイズが小さい。まあ変えればいいんですけど・・・。始め、文字サイズの設定方法がよく分からず、google先生に訊いてようやく分かりました。ただ、そのせいかあまり使っていません。
デフォルトではHaskellの色づけは出来なかった。

3. TextWrangler

http://www.barebones.com/products/textwrangler/download.html

卒論に使ったデータを見る時に「diffとかじゃなくて、もっとグラフィカルにファイルの差分が見たい!」と探したらこれを見つけました。バージョンは3.5.3。差分能力は個人的にはFileMergeよりも優秀だと思っています。テキストエディタとしてはあまり使っていないのでよく分かりません・・・。とりあえずHaskellの色づけは出来ませんでした。
ただ、研究室の人で使っている人もいるし、英語が読めれば便利なのかな??

4. Sublime Text 2

http://www.sublimetext.com/

研究室の人に教えてもらったスーパーエディタ。

・長所
まだあまり使っていないけど、今のところ他のエディタが持つ優秀な特徴を全て持っている。プログラミングの際に関数の畳み込みが可能。設定をすると簡単にvimemacsキーバインドが使える。グラフィックも美しい。

・短所
有料(59$)!!
ただお試し版が今のところ期限なしで使える。ただ、何回かファイルを保存する毎に警告のダイアログが出る。僕の中ではお金があれば最有力エディタ。
ただ、Leopardには対応していない・・・。


5.MacVim

http://code.google.com/p/macvim/

Mac用のVim。コンソールではvimが使いづらい人でもMacの普通のショートカット(Command + Sで保存とか)が使えるので便利。バージョンは7.3(53)。

・長所
Vimの機能が多分ほとんど使えるはずなので、Vim使いの人にはこれ一択かも。
HOMEディレクトリにある.vimrcに設定を書き込むと細かいカスタマイズが可能。
Haskellも色づけしてくれる。タブ機能あり。

・短所
Vimに慣れていない人にはかなり扱いづらい。僕はどうしてもインサートモードへの移行が煩わしくてVimは使いこなせませんでした。


6. Aquamacs

http://aquamacs.org/

初心者向けのEmacsエディタ。バージョンは2.4。


・長所
初心者向けらしく、undoなどがグラフィカルなボタンで実装されている。emacsキーバインドが使える上に、独自のキーバインドもある。個人的に「Command + delete」の一行削除がすごい使いやすい。MacVimみたいに設定ファイルを直接いじって細かい作業が可能。タブ機能あり。Haskellも色づけ可能。
あと、LeopardにはどうもEmacsの23.1までしか対応していないみたいなんだけど、Aquamacs2.4にはGNU Emacs 23.3.50.1の機能があるので、ちょっと優秀。


・短所
なんかたまに寄付を要求するダイアログが出る(僕の設定が悪いっぽい??)。
あとたまに表示が変になることがあるような気がする。
僕の環境では初期設定で日本語が表示出来なかった(打ち込んでも透明の文字が表示される)。これが原因でAquamacsを諦めたんだけど、Emacsの日本語環境を頑張って整えた後に今見たら使えるようになってる・・・。
あとこれは個人的にだけど、アイコンがちょっと微妙。

7.Emacs

http://www.gnu.org/software/emacs/

Vimと双璧を成す言わずと知れた有名エディタのGUI版。バージョンは23.1。


・長所
かなり細かい設定が可能。ただ、慣れるまでは環境設定すらかなり難しい。キーバインドも豊富。

・短所
初期設定では日本語が読みづらいフォントになってる。タブ機能なし。Haskellも色づけ出来なかった。Leopardでは使えない上のバージョンなら可能?

終わりに

この記事を書き始める前は「・・・というわけで今はEmacsを使っています」で締めくくろうと思っていましたが、Emacsの設定をしたおかげかAquamacsで日本語が扱えるようになったのでAquamacsを使っていこうかと思います。やっぱりタブ機能とHaskellのカラーリングは大きいです。

近いうちに最近気になってる言語Scalaを使ってみたいと思ってるんですが、scalaファイルはどのエディタも色づけしてくれませんでした。残念・・・。


せっかくなので、僕と同じように「これからEmacsを使ってみよう!」という方のためにEmacs(Aquamacs)の設定とかで参考にしたサイトを書いておきます。


コマンドラインからEmacsGUI)を呼ぶ方法
http://members.shaw.ca/akochoi-emacs/stories/faq.html#GENERAL%20USER%20QUESTIONS10

コマンドラインからAquamacsを呼ぶ方法(Aquamacsの設定ファイルとかも書いてある)
http://nets.ucar.edu/nets/intro/staff/siemsen/mac/aquamacs.html#commandline

Emacsで日本語のフォントをきれいにする
http://macemacsjp.sourceforge.jp/index.php?CocoaEmacs#lb3a4046
(多分これをやったおかげでAquamacsの日本語表示が直りました)

Emacsの設定ファイルについて
http://sakito.jp/emacs/emacs23.html#emacs-d
http://www.clear-code.com/blog/2012/3/20.html

Emacsでタブ文字を打つ方法
http://d.hatena.ne.jp/tomoya/20091021/1256112163

Emacsredoする方法(+簡単undo)
http://u.hoso.net/2009/04/redo-in-emacs.html




最後に、他にもMacのエディタを紹介されている方がいたので印象に残ったものを紹介。

・Fraise – CotEditorを超えるタブエディタ(要Snow Leopard
http://gori.me/mac/4908

komodo Editとか
http://mattintosh.blog.so-net.ne.jp/2012-08-05_text-editor-for-mac
使ってみたけど、ちょっと僕のPCには重い。

TextMateとかいろいろ
http://matome.hatena.ne.jp/mt/2697



おまけ1

Windows7でも探してみました。
ただ、今のところ「サクラエディタ」と水を開けるエディタに出会えていません。少し見た目が残念な感じですが、機能に不満はありません。


おまけ2
コマンドラインをちょっとカラフルにしてみました。

・.bashrcとかにこれを書いておくとlsをカラフルに出来ます!

alias ls='ls -G'

コマンドラインのカスタマイズが出来たとは・・・。
http://babyp.blog55.fc2.com/blog-entry-663.html
今は

export PS1="\h:\W \u \t \# \[\e[0;36m\]$\[\e[00m\] "

にしてます。だいぶ便利になりました。


そういえば今日はクリスマスだったのか・・・。
なんでこんな長文書いてるんだろう。
㍆㌋㌉㌏㌉㌸㌾㌋㌞㌹㌅



追記 (2013/01/30)
どうも自分のPCだとAquamacsの調子が良くないので、最近はEmacsを使っています。
EmacsをコンソールからGUIで起動する際に、openなどと違ってコンソールが止まってしまうのが嫌だったのですが、バックグラウンドで起動させるとEmacsを起動しながらコンソールで作業を続けられます。便利。
具体的にはhttp://members.shaw.ca/akochoi-emacs/stories/faq.html#GENERAL%20USER%20QUESTIONS10の方法を

#!/bin/sh
/Applications/Emacs.app/Contents/MacOS/Emacs "$@" &

とするといけます。
(ただ、バックグラウンドにすると-nwでコンソールからの起動が出来なくなるようです。その場合はGUI起動をemacsではなくgemacsのように違う名前にした方が良いかもしれません。)


追記 (2013/02/03)
Emacsでプログラムを書く時に、エスケープ文字をどうやって出せば良いのか全く分からずに困っていました。
通常Emacsにおいて特殊文字を出すのは「Ctrl-Q + (目的の文字)」で出来るようなんですが、自分の環境だと「Ctrl-Q + Option-\」とやっても上手くいきません。どうもOptionとAltキー(Metaキー)が同じなので、Altが優先されてOptionが無効化されてるっぽいです。
検索してみると、ことえりのキーボード環境設定から「JISキーボードの¥キーで入力する文字」を変えればいけました。

参考 : http://freefielder.jp/blog/2008/07/mac-1.html