プログラミングをはじめよう
いよいよ2010年度がはじまりました。この春からの新入社員や新入学生の方の中には,これからLinuxでプログラミングを始めるという方も多くいると思います(注1)。Windowsでプログラミングといえば,Visual Studioのような統合開発環境を使用するのが一般的のようですが,Ubuntuではどうすればよいのでしょうか。
UbuntuはUnixの文化を受け継ぐOSですから,プログラミングのためのツールは豊富に揃っています。しかしそれゆえに「とりあえずこうすればOK」という定石がよくわからないという人も多いかもしれません。
Linuxにおける開発環境は色々ありますが,やはり一番メジャーな統合開発環境といえばEclipseとNetBeansでしょう。しかし今回から3回にわたって,開発環境としてのEmacsを紹介します(注2)。
- 注1
- 先週と同じような書き出しなのは,気にしてはいけません。週刊連載とはそれほど奥が深いものなのです。
- 注2
- なにが「しかし」なのかはやはり気にしてはいけません。
Emacsのインストール
Emacs自体のインストールは第73回が参考になるはずです。ただし,Ubuntu 10.04ではEmacsはバージョン23が標準であるため,emacs-snapshotパッケージではなくemacsパッケージを使用してください。
$ sudo apt-get install emacs
C言語でプログラミング
Ubuntu 10.04を使用しているのであれば,C言語での開発に必要なコンパイラやライブラリは最初から導入済みとなっているため,すぐに開発に入ることができます。EmacsでC言語のソースファイルを開けば,自動的にメジャーモードがC言語のコーディングに適したc-modeになり(注3),キーワードが色分けされて表示されます。
- 注3
- Emacsは常に一つのメジャーモードとよばれるモードを持っており,モードによってEmacsの挙動は変化します。プログラム言語のコーディングに特化したモード(c-mode/ruby-mode/lisp-modeなど)や,その他にも文章のアウトラインが記述できるoutline-mode,マウスのドラッグで絵が描けるartist-modeなどがあります。
tabキーを押すことでEmacsがC言語の構文を解析し,現在の行を適切な深さにインデントしてくれます。複数の行をまとめてインデントしたい場合は,リージョンを選択して C-M-\ で,現在のリージョンをインデントすることができます。コメント関連では,M-; で現在の行にコメントを入力することができ,C-c C-c では現在のリージョン全体をコメントアウトすることができます。これはリージョン内に既存のコメントがあった場合,自動的にコメントをネストしてくれるため,手でコメントアウトするのに比べ非常に効率的です。
他には c-toggle-auto-newline(セミコロンを入力した時に自動改行する機能)や,c-hungry-delete-forward(Backspaceで複数の空白文字を一気に削除する機能)など,C言語のコードの効率的な入力を支援する機能が用意されています。
プログラムを記述したら,コンパイルしてみましょう。M-x compile を実行すると,外部プログラムを使用してソースファイルをコンパイルすることができます。ミニバッファにカーソルが移り,コンパイルに使用するコマンドの入力を促されます(デフォルトは make -k)。Makefileが用意されているならば,このままEnterを押すとmakeコマンドが実行され,コンパイルの様子は *compilation* バッファに表示されます。

