次のページ 前のページ 目次へ

Emacs HOWTO

Yoshio Shimamura <yoshios@green.ocn.ne.jp>

v1.0, 26 September 2000
この文書は、Emacsの自己流 HOWTO です。 この文書の最新版は http://hp.vector.co.jp/authors/VA004572/index.html から入手可能です。

Index

1 Emacsで何をしよう?

2 Emacsの設定ファイル

3 デフォルトのキー割当て

4 Infoを使う

5 Calendarを使う

6 バイナリファイルの編集

7 リモートホストの操作


1 Emacsで何をしよう?

Emacsの基本は、文書の編集です。文書の編集についての基本的な使い方は、C-H T(コントロールキーと大文字のHを同時に押してから、大文字のTを押す)を実行して表示される、日本語のチュートリアルを何度か実行してみると自然に修得できると思います。 この文書は、もちろんEmacsを使用して作成しているのですが、日本語入力プログラムもSKKというEmacsの言語(Emacs-Lispといいます。)を使用して作成された、高速で誤変換の無い(!)ものを利用させていただいています。
Emacsは、エディタを中心とした開発環境としての側面を持っているので、世界中のEmacs利用者が作成した様々な便利なプログラムが存在し、それを利用することができます。
そればかりではなく、「こんな機能があったらいいなぁ。。。」などのアイデアが浮んだら、皆さんがそれを実現することもできるのです。 GNU Emacs Manualには、次のモードの使いどころも書かれています。
M-x hanoi
M-x gomoku
M-x blackbox
M-x mpuz
M-x dunnet
M-x doctor
M-x yow

2 Emacsの設定ファイル

Emacsは、~/.emacsファイルにより、カスタマイズすることができます。 Emacsは、起動のたびに、サイト全体の3つの初期化ファイルをロードします。それらは、次のようなものです。 Emacsは、起動時に-qを指定することで、~/.emacsを読みこまないようにすることができる。

私の場合、~/.emacsの最後に必ず次の設定を入れます。

(load "~/.hogehoge")
そして、~/.hogehoge(もちろん仮称です)に次のように記述してます。
;;; common
(setq load-path (cons "~/lib/emacs" load-path))
(setq inhibit-startup-message t)
(setq next-line-add-newlines nil)
(setq blink-matching-param nil)
(setq auto-save-default nil)

;;; Namazu
(autoload 'namazu "namazu" nil t)

;;; sdic
(autoload 'sdic-describe-word "sdic" "英単語の意味" t nil)
(global-set-key "\C-cw" 'sdic-describe-word)
(autoload 'sdic-describe-word-at-point "sdic" "カーソル位置の英単語の意味" t nil)
(global-set-key "\C-cW" 'sdic-describe-word-at-point)

;;; Lookup
(autoload 'lookup "lookup" nil t)
(setq lookup-search-agents '((ndic "~/dict")))

;;; W3
(autoload 'w3 "w3" nil t)
;(require 'w3-auto)

;;; Wanderlust
(load "mime-setup")
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-draft "wl-draft" "Write-draft-with-Wanderlust." t)

;;; irchat
(autoload 'irchat "irchat" nil t)

3 デフォルトのキー割当て

Emacsを使いこなすのに必要な、基本的なコマンドのバインディングリストです。 十分に小指を鍛えてから、挑みましょう。

ところで、私は[Alt]キーを親指で押すのですが、皆さんは何指を使いますか?

3.1 File

File

C-x C-f (find-file)
C-x C-r (filnd-file-read-only)
C-x C-v (find-alternate-file)
C-x C-w (write-file)
C-x i (insert-file)

Buffer

C-x C-c (save-buffers-kill-emacs)
C-x C-s (save-buffer)
C-x k (kill-buffer)
C-x b (switch-to-buffer)
C-x C-b (list-buffers)

3.2 Move

Cursor

C-b (backward-char)
C-f (forward-char)
C-p (previous-line)
C-n (next-line)
C-a (beginning-of-line)
C-e (end-of-line)

Scroll

C-v (scroll-up)
M-v (scroll-down)
M-C-v (scroll-other-window)

3.3 Edit

Insert

C-m (newline)
C-i (indent-for-tab-command)
C-j (newline-and-indent)
C-o (open-line)
C-q (quoted-insert)

Delete

C-d (delete-char)
M-d (kill-word)
Del (delete-backward-char)
M-Del (backward-kill-word)
C-k (kill-line)
M-k (kill-sentence)
M-z (zap-to-char)

3.4 Region

Mark

C-@ (set-mark-command)
C-Spc (set-mark-command)
M-@ (mark-word)
M-h (mark-paragraph)
C-x h (mark-whole-buffer)
C-x C-p (mark-page)
C-x C-@ (pop-global-mark)
C-x C-Spc (pop-global-mark)

Region

C-w (kill-region)
M-w (kill-ring-save)
M-C-w (append-next-kill)
C-y (yank)
M-y (yank-pop)

3.5 Transpose

Transpose

C-t (transpose-chars)
M-t (transpose-words)
C-x C-t (transpose-lines)
M-l (downcase-word)
M-u (upcase-word)
C-x C-l (downcase-region)
C-x C-u (upcase-region)
M-c (capitalize-word)

Space

C-x C-o (delete-blank-lines)

Indent

C-x Tab (indent-regidly)
C-x $ (set-selective-display)
M-C-\ (indent-region)
M-m (back-to-indentation)
C-x . (set-fill-prefix)

Comment

M-j (indent-new-comment-line)
C-x ; (set-comment-column)

Line

(sort-lines)
(sort-paragraphs)
(sort-fields)
(sort-numeric-fields)
(reverse-region)

3.6 Undo

C-_ (undo)
C-/ (undo)
C-x u (advertised-undo)
C-g (keyboard-quit)
M-C-c (exit-recursive-edit)

3.7 Search

Search

C-s (isearch-forward)
C-r (isearch-backward)
M-C-s (isearch-forward-regexp)
M-C-r (isearch-backward-regexp)

Replace

(replace-string)
(replace-regexp)
M-% (query-replace)
(query-replace-regexp)
(keep-lines)
(flush-lines)

3.8 Window

C-x 0 (delete-window)
C-x 1 (delete-other-windows)
C-x 2 (split-window-vertically)
C-x 3 (split-window-horizontally)
C-x o (other-window)
C-x ^ (enlarge-window)
C-x { (shrink-window-horizontally)
C-x } (enlatge-window-horizontally)
C-x + (balance-windows)
C-x - (shrink-window-if-larger-than-buffer)
C-x 4 C-o (display-buffer)
C-x 4 b (switch-to-buffer-other-window)

3.9 Help

Help

C-h ? (help-for-help)
C-h C-h (help-for-help)
C-h q (help-quit)
C-h b (describe-bindings)
C-h c (describe-key-brefly)
C-h k (describe-key)
C-h d (describe-function)
C-h f (describe-function)
C-h v (describe-variable)
C-h m (describe-mode)
C-h p (finder-by-keyword)
C-h i (info)

Tutorial

C-h t (help-with-tutorial) ; Emacs
C-h T (help-with-tutorial-for-mule) ; Mule
C-h C-c (describe-copying) ; GNU copying
C-h C-d (describe-distribution) ; GNU distribution
C-h C-p (describe-project) ; GNU project
C-h C-w (describe-no-warranty) ; GNU no warranty

4 EmacsでInfoを使う

InfoはGNUプロジェクトが開発したハイパーテキストによるドキュメントシステムです。 Infoはコマンドラインからinfoコマンドで読むことができますが、Emacs系エディタからも利用することができます。

4.1 Infoの使い方

Emacs系エディタでは、M-x infoでインフォシステムをバッファ内部に呼び出せます。C-h iでも呼び出せます。 Infoでは、スペースキーを押すだけで順次ドキュメントを読み進めることができます。

Infoページにおいて*で始まる行にカーソルを移動させ[Enter]を押すと他のページにジャンプします。 Tabキーを押すと、ジャンプ可能なリンクがある次の文字列にカーソルが移動します。

Tab 次のリンク文字列に移動
p 前のページへ
n 次のページへ
C-x C-c 終了

4.2 TexiからInfoを作成

Emacs互換エディタでは、Texinfoソースをバッファに呼び出し、M-x texinfo-format-bufferで作成することができます。

また、UNIX系システムであれば、makeinfoユーティリティを使って作成することができます。

Texinfoは、プレーンなASCIIファイルで、テキストと@マークで始まるタイプセッティング及びフォーマッティングのコマンドから構成されています。

Texinfoファイルの作成方法については、Texinfo HOWTOを参照願います。

5 Calendarを使う

5.1 カレンダーを表示

カレンダーを表示するには、次のようにします。
M-x calendar
カレンダーモードでは、次のコマンドが使えます。
p d 年始からの日数を表示
C-c C-l カレンダーの再表示
SPC 次のウィンドウをスクロール
q カレンダーの終了
休日は、xでマークすることができます。休日の操作は、主に次のようなものが使えます。
x 休日をマーク
u マークを消去
a 休日をリストアップ

5.2 ダイアリー

カレンダーでは、~/diaryというファイルを使用してダイアリーを利用することができます。
i d 記録(予定)を挿入

5.3 アポイント通知

~/.emacsに次の行を追加すれば、アポイント通知機能が利用できるようになります。
(display-time)
(add-hook 'diary-hook 'appt-make-list)
(diary 0)

6 バイナリファイルの編集

Hexlモードを利用すればバイナリファイルも編集できます。
M-x hexl-find-file
で、ファイルを読みこめば、Hexlモードでファイルを読みこみます。
C-M-d 10進で入力したコードでバイト挿入
C-M-x 16進で入力したコードでバイト挿入
M-g 16進で指定したアドレスに移動
M-j 10進で指定したアドレスに移動
C-c C-c Hexlモードの終了

7 リモートホストの操作

他のホストにTelnetするには次のようにします。
M-x telnet
ホスト名を聞かれるので、入力すると指定ホストとの接続が試みられます。 接続後は、入力は、Emacsのコマンドで編集でき、RETを入力すると、その行を送信します。
コマンドの入力及び出力も、Emacsのバッファ内で行なわれるので、その結果をテキストに取り込むのも容易にできます。
次のページ 前のページ 目次へ