Ubuntu Weekly Recipe

第118回 UbuntuとEmacsでプログラミングをはじめよう(後編)

この記事を読むのに必要な時間:およそ 2.5 分

今週はEmacsでのプログラミング環境のまとめとして,Emacsでの編集作業に役立つ便利な拡張機能を紹介します。

分岐したアンドゥの履歴を管理する undo-tree

エディタにおいてアンドゥ,リドゥはとても便利な機能ですが,アンドゥした後に新しい入力を行うと,リドゥができないというジレンマがあります。以下のようなケースを想定してみてください。

  1. Aを入力する
  2. Aの入力をアンドゥ
  3. Bを入力する
  4. やっぱりAに戻したい <- これはできない

このような,ツリー状に分岐する入力の履歴を管理し,任意のバージョンに戻れる機能を提供するのがundo-tree.elです。以下のようにgitをインストールして,undo-treeを入手してください。

$ sudo apt-get install git-core
$ git clone http://www.dr-qubit.org/git/undo-tree.git undo-tree

undo-tree.elをロードパスの通った場所に配置したら,.emacsに以下の設定を追記します。

(when (require 'undo-tree nil t)
  (global-undo-tree-mode))

C-x uを入力することで,ツリー状に分岐した履歴が表示されますので,f/b/n/pでツリーを移動してください。移動するだけでバッファには,その時点での変更が反映されていますので,目的の場所へ移動できたらqキーでツリー表示を終了してください。

図1 視覚的に履歴が表示され,任意の状態に戻ることができる

図1 視覚的に履歴が表示され,任意の状態に戻ることができる

キルリングの内容を視覚化する browse-kill-ring

Emacsにはキルリングとよばれる,ユーザがキル(カット/削除)したテキストを保存しておく機能があります。これはその名の通りリング状のバッファで,クリップボードとは異なり,複数の履歴を保存しています。C-yで最後にキルした内容がヤンク(ペースト)されますが,その直後にM-yを入力すると,リングを順に辿りながら,古い内容をヤンクすることができます。しかしこれは「次に何が出てくるか」が見えないため,お世辞にも使いやすい機能とは言えません。

browse-kill-ringはキルリングの内容をリストとして表示し,カーソルでヤンクする内容を選択することができます。browse-kill-ringはemacs-goodies-elパッケージに同梱されています。

$ sudo apt-get install emacs-goodies-el

使うための特別な設定は必要ありません。M-x browse-kill-ringを実行すると,*Kill Ring*バッファにキルリングの内容がリストされますので,n/pで選択してEnterで決定してください。なお.emacsに以下のような記述を追加すると,M-yにbrowse-kill-ringをバインドすることができます。

(browse-kill-ring-default-keybindings)

賢い補完機能 Auto Complete Mode

Auto Complete Modeは,Visual Studioなどでおなじみのキーワード補完機能をEmacs上で実現します。Auto Complete Modeのサイトから最新のv1.2をダウンロードしてインストールしましょう。

$ wget http://cx4a.org/pub/auto-complete/auto-complete-1.2.tar.bz2
$ tar jxvf auto-complete-1.2.tar.bz2

アーカイブの展開が完了したら,Emacs上でM-x load-fileを実行します。ロードするファイル名はアーカイブを展開したディレクトリにある/etc/install.elです。次にインストール先を訪ねられますので,インストールしたいディレクトリを入力してください。ロードパスの通った,自分がいつも使用しているelisp置き場を指定するとよいでしょう。.emacsには以下のような設定を行います。ac-dictionary-directoriesはac-dictをインストールしたパスに置き換えてください。

(when (require 'auto-complete-config nil t)
  (add-to-list 'ac-dictionary-directories "~/.emacs.d/elisp//ac-dict")
  (ac-config-default))

あとはプログラムを入力していけば,その時々にあわせて補完候補を表示してくれます。補完候補を選択するにはTabキーを,選択した候補で確定するにはEnterを使用します。

図2 現在の文脈を判断して,補完候補を表示してくれる

図2 現在の文脈を判断して,補完候補を表示してくれる

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。株式会社インフィニットループ所属。

コメント

コメントの記入