Hatena::ブログ(Diary)

May the Source be with you このページをアンテナに追加 RSSフィード

2009-02-10

できる Emacs 第一回

     /⌒  ⌒\
   /( ●)  (●)\ 久しぶりだお!
  /::::::⌒(__人__)⌒::::: \ みんなのアイドル、やる夫だお!
  |     |r┬-|     | 今日はEmacsについて勉強するお!
  \      `ー'´     /


    / \  /\ キリッ
  / (ー)  (ー)\ というわけでEmacsについて教えるお!
 /   ⌒(__人__)⌒ \
 |      |r┬-|     |
  \     `ー'´   /

……

………

すいません、間違いました。

そういえば、次のお勤め先はEmacs必須らしいので、使い方を覚えないと。新人研修で基本的なことは教えてもらえるらしいんで、あとは応用編をどうやって学習するか? 「週刊できるEmacs」みたいな本があれば良いんですけれども。

Foamy Capriccio: エディタ

とリクエストがあったので、自分の Emacs 環境を紹介します。こうやって書いておくと hito さんあたりから色々と突っ込みが入ると思うので、結果的に私の Emacs 環境もパワーアップという魚心あれば下心。

外堀を埋める

まず Emacs に入門するため、Ubuntu の環境から整備しましょう。以下のコマンドを実行してください。

$ gconf-editor

desktop -> gnome -> interface -> gtk_key_theme の値を Emacs に変更してください。これで Gnome のキー操作を Emacs 風のバインドで使うことができるようになります。次に FirefoxFiremacs アドオンを追加しましょう。Firefox での操作が Emacs(ry

インストール

UbuntuEmacsインストールするには以下のコマンドを実行します。emacs-env-ja メタパッケージは使わず、手動で構築してみましょう。

$ sudo apt-get install emacs

起動するとこんな画面が表示されたりします。

f:id:MIZUNO:20090210180639p:image

ぶっちゃけデフォルト状態の Emacs は死ぬほど使いづらいので、ここから自分だけの Emacs へ育て上げていく必要があります。なお Emacs の設定は ~/.emacs もしくは ~/.emacs.el に記述します。

カーソルを移動する前と後に『サー』と言え!

Emacs キーバインドが体に染みついていない人*1は、まず鬼軍曹インストールしましょう。カーソルキーのような地の果てにあるキーでカーソル移動をしていると、右手がホームポジションに戻ってくる前に戦争が終わってしまいます。是非とも C-n C-p C-f C-b でのカーソル移動に慣れてください。また、デフォルトでは C-h がバックスペースになっていないので、キーバインドを設定する必要があります。

こういった elispインストールする場合は、ロードパスの通ったディレクトリスクリプトを配置する必要があります。例えば ~/.elispelispインストールして使用できるようにする場合は以下のようにします。

;; .emacs に以下の記述を追加
(setq load-path(cons "~/.elisp" load-path))

;; 鬼軍曹を有効にする
(require 'drill-instructor)
(setq drill-instructor-global t)

;; C-h をバックスペースに割り当てる
(global-set-key "\C-h" 'delete-backward-char)

追記

鬼軍曹の中で C-h の設定がなされているので、鬼軍曹をを有効にすると (global-set-key "\C-h" 'delete-backward-char) の設定は不要です。

日本語入力環境

日本語入力には anthy-el を使用するのが手っ取り早いでしょう。以下のコマンドでインストールできます。

$ sudo apt-get install anthy-el

;; .emacs に以下の記述を追加
(require 'anthy)

バッファ上で C-\ を入力することで日本語入力が可能になります。主なキーバインドAnthy Wiki にある通りですが、私はこれが気に入らないので l/L を x/X にバインドした anthy-el を PPA で配布しています。もし ATOK っぽいローマ字バインド*2で使いたい人はどうぞ。

追記

わざわざパッケージにしないでも、

#!/bin/bash

ANTHY='/usr/share/emacs/site-lisp/anthy/anthy.el'
DEST='/usr/share/emacs22/site-lisp/anthy'

sed -e 's/\. 76)/\. 88)/g' -e 's/\. 108)/\. 120)/g' -i ${ANTHY}
emacs -batch -f batch-byte-compile ${ANTHY}
cp ${ANTHY}c ${DEST}

でいい気がした。

便利な elisp

apt から便利な elisp を色々と入手できます。

gnuserv
既に起動済みの Emacs に接続する機能
elscreen
Emacs 上で動作する screen
w3m-el
Emacs 上で w3m を使う
emacs-goodies-el
便利なツール集っていうかぶっちゃけ rdired のためだけに
ruby-elisp
Rubyコーディングに適したモード
html-helper-mode
HTML の記述に適したモード

利用するには .emacs への記述が必要です。

;; elscreen
(load "elscreen" "ElScreen" t)

;; gnuserv
(gnuserv-start)
(setq gnuserv-frame (selected-frame))

gnuserv と elscreen を組み合わせると

export EDITOR='/usr/bin/gnuclient -f elscreen-create'

こんな設定で、dch した時に「既に起動している Emacs 上に新しい screen を開き、そこで新規バッファを開く」ようなことが出来たりします。

*1:カーソルキーだの、バックスペースキーだのといった両生動物のクソをかき集めた値打ちしかないキーを使ってしまう人

*2:l が半角英数モードに取られているので、デフォルトでは拗音を l + 母音で入力できないので

hitohito 2009/02/10 20:58 サー、debなanthy-el入れたらrequireは不要ですサー!

という無粋なツッコミはともかく、

(setq confirm-kill-emacs 'yes-or-no-p)
(setq highlight-nonselected-windows t)
(setq search-highlight t)
(setq query-replace-highlight t)
(setq kill-read-only-ok t)
(global-auto-revert-mode 1)
(temp-buffer-resize-mode t)
(setq uniquify-min-dir-content t)
あたりとiswitchbは必須だと思うのですサー!

柴田柴田 2009/02/10 22:23 サー、ありがとうございますサー!
その調子で10回ぐらいまでの連載分を4月3日に発表してくださいサー。

MIZUNOMIZUNO 2009/02/10 22:42 それは知らなかったサー!

苗 2009/02/22 23:36 サー、大変勉強になりますサーッ!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証