sdic-inlineおわりに今週はEmacsでのプログラミング環境のまとめとして、Emacsでの編集作業に役立つ便利な拡張機能を紹介します。undo-treeエディタにおいてアンドゥ、リドゥはとても便利な機能ですが、アンドゥした後に新しい入力を行うと、リドゥができないというジレンマがあります。以下のようなケースを想定してみてください。これはできないこのような、ツリー状に分岐する入力の履歴を管理し、任意のバージョンに戻れる機能を提供するのがundo-tree.elです。以下のようにgitをインストールして、undo-treeを入手してください。undo-treeundo-tree.elをロードパスの通った場所に配置したら、.emacsに以下の設定を追記します。uを入力することで、ツリー状に分岐した履歴が表示されますので、f/b/n/pでツリーを移動してください。移動するだけでバッファには、その時点での変更が反映されていますので、目的の場所へ移動できたらqキーでツリー表示を終了してください。browse-kill-ringEmacsにはキルリングとよばれる、ユーザがキル(カット/削除)したテキストを保存しておく機能があります。これはその名の通りリング状のバッファで、クリップボードとは異なり、複数の履歴を保存しています。C-yで最後にキルした内容がヤンク(ペースト)されますが、その直後にM-yを入力すると、リングを順に辿りながら、古い内容をヤンクすることができます。これは「次に何が出てくるか」が見えないため、お世辞にも使いやすい機能とは言えません。browse-kill-ringはキルリングの内容をリストとして表示し、カーソルでヤンクする内容を選択することができます。browse-kill-ringはemacs-goodies-elパッケージに同梱されています。emacs-goodies-el使うための特別な設定は必要ありません。Ring*バッファにキルリングの内容がリストされますので、n/pで選択してEnterで決定してください。.emacsに以下のような記述を追加すると、M-yにbrowse-kill-ringをバインドすることができます。Studioなどでおなじみのキーワード補完機能をEmacs上で実現します。Modeのサイトから最新のv1.2をダウンロードしてインストールしましょう。load-fileを実行します。ロードするファイル名はアーカイブを展開したディレクトリにある/etc/install.elです。次にインストール先を訪ねられますので、インストールしたいディレクトリを入力してください。ロードパスの通った、自分がいつも使用しているelisp置き場を指定するとよいでしょう。.emacsには以下のような設定を行います。ac-dictionary-directoriesはac-dictをインストールしたパスに置き換えてください。(ac-config-default))あとはプログラムを入力していけば、その時々にあわせて補完候補を表示してくれます。補完候補を選択するにはTabキーを、選択した候補で確定するにはEnterを使用します。grep-edit複数のファイルに対し、まとめて編集を行いたいということはよくあります。クラス名を変えた時や、ある関数を別の関数に置き換えたい、といった時には、それらを参照している箇所を全て編集しなくてはなりません。編集する対象はgrepで探すことができますが、grep-editを使えばgrepで検索した結果を直接編集することができます。grep-editはEmacs電子書棚さんからダウンロードできますので、ロードパスの通ったディレクトリに配置して、.emacsに以下の記述を追加してください。grepでgrepを実行すると、*grep*バッファにgrepの結果が表示されます。C-eと入力すると、編集内容が各ファイルに反映されます(保存はされません⁠)⁠。query-replaceなどを使って置換することも可能ですので、うまく使えば複数のファイルの内容をすばやく編集することが可能です。sdicプログラムを書いていると、変数名の英単語に悩んだり、また英語のドキュメントを辞書片手に読まなければならないことも多々あります。そんな時に便利なのが、Emacs上から辞書を閲覧できるsdicです。p>以下のコマンドを実行すると、sdicとsdicで使用できる英和/和英辞書がインストールされます。sdicを実行してミニバッファに調べたい単語を入力すると、*sdic*バッファに辞書を引いた結果を表示してくれます。sdic-inlinesdicの機能を利用し、カーソルの下にある単語を自動調べてミニバッファに表示してくれる拡張が、sdic-inlineです。Wikiからダウンロードして、ロードパスの通ったディレクトリに配置してください。.emacsには以下のような記述を追記します。popupはポップアップ表示を行いたい場合に使用します。Modeに同梱されていますので参考にしてください。sdicを実行しなくても、Emacsが自動的に単語を調べてくれます。"/usr/share/dict/jedict.sdic"))sdic-inlineをさらに拡張し、ミニバッファでなくtooltipを使って表示するのがsdic-inline-pos-tipです。pop-tip.elとsdic-inline-pos-tip.elをロードパスの通ったディレクトリに配置し、.emacsに以下の記述を追記します。これでtooltipで訳が表示されるようになります。tooltipで訳が表示されるようになるおわりにEmacsにはUnixプログラマの知恵やノウハウが数十年にわたって蓄積されています。そのすべてを紹介することはとても不可能ですので、今回ははあくまで「ほんのさわり」だけを紹介しました。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。