書籍概要

WEB+DB PRESS plus

Emacs実践入門
―思考を直感的にコード化し、開発を加速する

著者
発売日
更新日

概要

本書は,日常のテキスト編集やプログラム開発で,Emacsを快適に利用するためのノウハウを解説した書籍です。Emacsの魅力は,カスタマイズ性の高さや豊富な拡張機能にあります。反面,使いこなすにはある程度の知識が必要で,利用の障壁となっているのも事実です。本書では,基本的な使い方から,カスタマイズを行うための設定,そしてテキスト編集や開発時に便利な拡張機能の実践的な使い方まで,現在の状況に合わせてしっかり解説しています。プログラマはもちろん,テキスト編集を便利に行いたい方にもお勧めです。

こんな方におすすめ

  • Emacsをこれから使い始めたい方
  • Emacsをさらに使いこなしたい方

Emacs 24.1への対応

本書はEmacs 23.4を動作環境として解説していますが,バージョン表記などに関わる部分を変更すれば,Emacs 24.1でも同様に動作します。Emacs 24.1を利用する際は,次の対応情報を参考にしてください。

補足情報

本書に関するお知らせ

本書に関連する記事を公開しております。

目次

  • 本書に寄せて
  • はじめに
    • 謝辞
  • 本書の構成
    • サンプルコードのダウンロード
  • Emacs Lispの構文

1章 Emacsの世界へようこそ

1.1 多くの人に愛される歴史あるエディタ

  • ユーザが自由に機能を変更・追加できる
  • 使いこなせば強力な味方になる
  • 本当は難しくないEmacs

1.2 本当のエディタにできること

  • エディタが本来持つべき機能

1.3 EmacsがEmacsであるための特徴

  • 優れた操作性
  • 設定の柔軟性
  • 本体の拡張性

2章 インストール,設定ファイルと画面の構成

2.1 インストール

  • Macへのインストール
    • Emacs.appを入手する
    • Emacs.appを自分でビルドする
  • Windowsへのインストール
    • オフィシャルビルドを利用する
    • NTEmacs,gnupackを利用する
  • Linuxへのインストール
  • ターミナル環境へのインストール

2.2 ディレクトリと設定ファイルの構成

  • 各ディレクトリの役割
    • etcディレクトリ
    • leimディレクトリ
    • lispディレクトリ
    • site-lispディレクトリ
    • binディレクトリ
    • ホームディレクトリに作成される.emacs.dディレクトリ
  • Windowsのホームディレクトリ設定
  • 設定ファイルの構成

2.3 画面の構成

  • フレーム
  • ウィンドウ
  • フリンジ
  • バッファ
  • [Column] Emacsは終了しない?
  • モードライン
  • ミニバッファ(エコーエリア)

2.4 モード

  • メジャーモード
    • メジャーモードを選択するしくみ
    • メジャーモードが提供する機能
  • マイナーモード
    • マイナーモードが提供する機能
  • [Column] アラインメント機能を使ってきれいなコードを書く

3章 基本的な操作

3.1 コマンド

  • 入力して実行する
  • キーバインドから実行する
    • コマンドの表記方法
    • キーバインドの表記方法
    • キーバインドの表記サンプル
    • プレフィックスキー(起点キー)

3.2 起動と終了

  • 起動する
    • Emacsデーモンで起動を高速化する
  • [Column] 困ったときはC-gでキャンセル
    • デバッグモードでの起動
  • 終了する

3.3 ファイル(バッファ)を開く,保存する

  • ファイル(バッファ)を開く──C-x C-f
  • ファイル(バッファ)を保存する──C-x C-s
  • すべてのファイル(バッファ)を保存する──C-x s
  • バックアップファイル
    • オートセーブファイル
  • 別名で保存する──C-x C-w
  • バッファに別ファイルを挿入する──C-x i
  • 文字コード・改行コードを変換する──C-x RET f
  • 文字コード・改行コードを変換して開き直す──C-x RET r
  • バッファを切り替える──C-x b
  • バッファを消去する──C-x k

3.4 カーソル移動

  • キーバインド一覧
  • Emacsのホームポジション

3.5 文字の入力や文字列の操作

  • マークとリージョン──C-SPC
  • コピーとカット──M-w,C-w
  • 行を消去する──C-k
  • ペーストする──C-y,C-y M-y……
  • コメントする,コメントを解除する──M-;
  • [Column] ちょっと便利なリージョン選択方法
  • 特殊文字を入力する──C-q
  • アンドゥ──C-/,C-_,C-x u

3.6 Emacsの正規表現

  • 特別な文字

3.7 検索と置換

  • grepによる検索
  • インクリメンタル検索──C-s,C-r,C-M-s,C-M-r
  • 対話置換,一括置換──M-%,C-M-%
    • ナローイングでバッファの一部のみを編集する

3.8 ウィンドウ操作

  • ウィンドウを分割する──C-x 2,C-x 3
  • ウィンドウを移動する──C-x o
  • 分割したウィンドウを閉じる──C-x 1,C-x 0

3.9 ディレクトリ操作(Dired)

3.10 キーボードマクロによる繰り返し操作

  • 基本的な使い方
  • 名前を付ける
  • 再利用するために保存する

3.11 表示の変更

  • 文字サイズをすぐに変更する──C-x C-+,C-x C-=,C-x C--,C-x C-0
  • 行の折り返し表示を変更する──M-x toggle-truncate-lines

3.12 ヘルプの利用

  • info──M-x info
  • ヘルプコマンド──C-h,<f1>
  • よく利用するヘルプコマンド
    • C-h a 文字列 RET
    • C-h b
    • C-h k キーバインド
    • C-h w コマンド名 RET
    • C-h f 関数名 RET
    • C-h v 変数名 RET
  • 日本語ドキュメント

4章 設定ファイルの管理方法

4.1 効率的な設定ファイルの作り方と管理方法

  • ~/.emacs.dディレクトリに設定をまとめて管理
    • サブディレクトリの構成
    • Elispをどのように配置すべきか
    • Elisp配置用のディレクトリを作成する
    • ロードパスを追加する
    • 設定を反映するには
  • 設定を分割して管理
    • ファイルを分ける
    • init-loader.elを利用する

4.2 環境に応じた設定の分岐

  • OSの違いによる分岐
  • CUIとGUIによる分岐
  • Emacsのバージョンによる分岐

4.3 拡張機能の読み込み方

  • requireとautoloadの違い
    • require
    • autoload
  • コマンドがある場合のみ読み込む

4.4 Webサービスを用いたバックアップ

  • GitHub
    • ~/projects/dotfilesディレクトリに設定ファイルを移動する
    • シンボリックリンクを利用する
    • Gitにコミットする
    • GitHubへプッシュする
  • Dropbox
  • [Column] エディタ採用

5章 本体の設定

5.1 設定を反映する方法

  • C-x C-eとC-jによる評価
  • その他の評価

5.2 キーバインドの設定

  • キーマップ
    • キーバインドの優先順位
  • キーバインドの割り当て
  • お勧めのキー操作
    • 改行と同時にインデントする
  • [Column] C-hをバックスペースにする
    • 行の折り返し表示を切り替える
    • 簡単にウィンドウを切り替える

5.3 環境変数の設定

  • パスの設定
  • 文字コードの設定
    • 現在の文字コード設定を調べる
    • 文字コードを指定する
    • ファイル名の扱い

5.4 フレームに関する設定

  • モードラインに関する設定
    • 行番号/カラム番号を表示する
    • ファイルサイズ,時計,バッテリー残量を表示する
  • タイトルバーにファイルのフルパスを表示
  • ウィンドウ左に行番号を表示

5.5 インデントの設定

  • タブ文字の表示幅
  • タブ文字の利用
  • C,C++,JAVA,PHPなどのインデント

5.6 表示・装飾に関する設定

  • フェイス
  • 表示テーマの設定
  • フォントの設定
    • 英語フォントを指定する
    • 日本語フォントを指定する
    • フォントの横幅を調節する

5.7 ハイライトの設定

  • 現在行のハイライト
  • 対応する括弧のハイライト

5.8 バックアップとオートセーブ

  • オートセーブファイルからの復元
  • バックアップとオートセーブの設定
    • バックアップとオートセーブファイルの作成先を変更する
    • オートセーブの間隔を変更する

5.9 フック

  • 自動化のしくみ
  • 利用方法
    • 無名関数lambdaを使う場合
    • 関数を定義する場合
  • 代表的なフック一覧
  • [Column] 簡単な計算は*scratch*バッファで

6章 テキスト編集をさらに効率化する拡張機能

6.1 Elispをインストールしよう

  • 標準的なインストール方法
    • auto-installを導入する
  • バイトコンパイル
    • byte-compile-fileコマンド
    • シェルからバイトコンパイルする
  • 拡張機能の自動インストール──auto-install
    • 利用可能にする
    • 利用する
  • [Column] 拡張機能の設定方法を調べるには
  • Emacs Lisp Package Archive(ELPA)──Emacs Lispパッケージマネージャ
    • Emacs 23へpackage.elをインストールする
    • ELPAのパッケージ一覧を取得する
    • パッケージ一覧から選択してインストールする
    • コマンドから直接インストールする
    • インストール先のディレクトリ構成と設定のしくみ

6.2 統一したインタフェースでの操作

  • 候補選択型インタフェース──Anything
    • インストールする
    • 利用可能にする
    • ファイルを開く・バッファを切り替える
    • キーバインドを一覧表示する──describe-bindings
    • 過去の履歴からペーストする──anything-show-kill-ring
    • moccurを利用する──anything-c-moccur

6.3 入力の効率化

  • 補完入力の強化──Auto Complete Mode
    • インストールする
    • 利用可能にする
    • 補完候補をポップアップ&絞り込む

6.4 検索と置換の拡張

  • 検索結果のリストアップ──color-moccur
    • インストールする
    • 利用可能にする
    • 代表的なコマンド
    • マルチバッファを検索し結果をリストアップする
    • カレントバッファを検索し結果をリストアップする
  • moccurの結果を直接編集──moccur-edit
    • インストールする
    • 利用可能にする
    • mocccurの結果を編集する
    • 編集を終了したときにファイルを自動保存する
  • grepの結果を直接編集──wgrep
    • インストールする
    • 利用可能にする
    • grepの結果を編集する

6.5 さまざまな履歴管理

  • 編集履歴の記憶──undohist
    • インストールする
    • 利用可能にする
    • ファイルを閉じたあとにアンドゥする
  • アンドゥの分岐履歴──undo-tree
    • インストールする
    • 利用可能にする
    • 樹形図を見ながらアンドゥする
  • カーソルの移動履歴──point-undo
    • インストールする
    • 利用可能にする
    • カーソル位置を戻す/やりなおす

6.6 ウィンドウ管理

  • 分割状態を管理──ElScreen
    • インストールする
    • 利用可能にする
    • スクリーンを作成する
    • スクリーンを移動する
    • 代表的なキーバインド

6.7 メモ・情報整理

  • メモ書き・ToDo管理──howm
    • インストールする
    • 利用可能にする
    • howm-menuを起動する
    • メモを書く
    • 保存と同時に閉じる
  • アウトラインエディタ──org-mode
    • アウトライン編集機能
    • 箇条書きなどを入力する
    • 表を入力する

6.8 特殊な範囲の編集

  • 矩形編集──cua-mode
    • 利用可能にする
    • 各行頭に文字を追加する
    • 各行頭の文字を削除する
    • 連番を入力する

7章 開発をさらに効率化する拡張機能

7.1 各種言語の開発環境

  • HTML
    • html-mode
    • html-modeを利用してタグを入力する
    • html-modeが自動選択されるしくみ
    • nxml-mode
    • nxml-modeをHTML編集のデフォルトモードに
    • nxml-modeで構文チェックする
    • HTML5をnxml-modeで編集する
    • nxml-modeの基本設定
  • CSS
    • cssm-mode
    • cssm-modeの基本設定
    • auto-completeによる補完を利用する
  • JavaScript
    • 標準のjs-mode
    • 構文チェック機能を備えたjs2-mode
    • js2-modeをインストールする
    • js2-modeが持つインデントの不具合を解決する
  • PHP
    • php-mode
    • オンラインドキュメントを利用する
    • php-modeのインデントを調整する
    • PHP補完入力──php-completion
  • Perl
    • cperl-mode
  • [Column] 便利なエイリアス
    • cperl-modeのインデントを調整する
    • yaml-mode
    • Perl補完入力──perl-completion
  • Ruby
    • ruby-modeのインデントを調整する
    • Ruby編集用の便利なマイナーモードを利用する
    • Emacsからirbを利用する──inf-ruby
  • Python
    • python-mode.el
    • PyChekerで構文をチェックする
    • そのほかの構文チェックツール──pep8,pyflakes,flake8,pylint
  • C/C++
    • cc-mode
    • cc-mode付属のマイナーモード
    • c-mode-common-hookとそれぞれのフック

7.2 Flymakeによる文法チェック

  • Flymakeを利用できる言語
  • PerlのFlymake設定から学ぶ
  • C言語系
    • Makefileがあれば利用し,なければ直接コマンドを実行する
  • XMLとHTML
  • JavaScript
    • jslをインストールする
    • jslを利用可能にする
  • Ruby
  • Python

7.3 タグによるコードリーディング

  • Etags以外のタグ作成プログラム
  • gtagsとEmacsの連携
    • gtags.elをインストールする
    • gtags-modeの使い方
  • ctagsとEmacsの連携
    • ctags.elをインストールする
  • Anythingとタグの連携
    • anything-for-tagsコマンドを作成する

7.4 フレームワーク専用拡張機能

  • Rinari──Ruby on Rails Minor Mode for Emacs
    • インストールする
    • ナビゲーション機能でファイルを移動する
    • よく利用するRinariコマンド
  • CakePHP Minor Mode──emacs-cake
    • インストールする
    • ナビゲーション機能でファイルを移動する
    • auto-completeと連携する

7.5 特殊な文字の入力補助

  • 絵文字の入力補助──emoji.el
    • インストールする
    • 利用する

7.6 差分とマージ

  • diffによる差分表示──M-x diff
  • Ediffによる差分表示──M-x ediff
    • 利用する
    • 同一フレーム内にコントロールパネルを表示する
    • キーバインド一覧
  • Ediffによるパッチの適用──M-x epatch
  • Ediffによるマージ──M-x ediff-merge

7.7 Emacsからデータベースを操作

  • データベースへの接続
    • MySQLへ接続する──sql-interactive-mode
  • sql-modeとの連携

7.8 バージョン管理

  • Emacs標準のバージョン管理機能
  • Subversionフロントエンド──psvn
    • インストールする
    • 利用する
  • Gitフロントエンド──Egg
    • インストールする
    • 利用する

7.9 シェルの利用

  • シェルコマンドの実行──M-!
    • カレントファイルへ結果を出力する──C-u M-!
    • バッファの内容を標準入力として利用する──M-|
  • ターミナルの利用──multi-term
    • インストールする
    • 利用する

7.10 TRAMPによるサーバ接続

  • sudo,suによる編集
  • バックアップファイルを作成しない

7.11 ドキュメント閲覧・検索

  • Emacs版manビューア(WoMan)の利用
    • 利用可能にする
  • Anythingによるman検索

Appendix 最新情報を入手するには

A.1 開発状況

  • フリーソフトウェアとしてのEmacs
  • ソースコードリポジトリ
    • Bazaarを利用してソースコードを取得する
    • Gitを利用してソースコードを取得する

A.2 開発版の試用

  • 開発版のビルド
    • READMEを読む
    • configureファイルを作成する

A.3 新しい情報に触れるには

  • メーリングリスト
  • EmacsWiki──世界のEmacsコミュニティ
  • メーリングリスト,Wiki,その先へ
  • [Column] Google Mapsも使えるEmacs

サポート

ダウンロード

本書のサンプルコードをダウンロードできます。

データは,圧縮ファイル形式でダウンロードできます。圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。また,サンプルコードの冒頭に利用に際しての注意点が書かれていますのでご一読ください。

ダウンロード
サンプルコード(約12.6KB)

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2012年10月15日更新)

初版第1刷をお持ちの方(第2刷で修正済み)

xvii 目次

C、C++、JAVA、PHPなどのインデント
C、C++、Java、PHPなどのインデント

P.34 「別名で保存する」2行目

コマンドを入力すると、C-x C-s(find-file)と同じように
コマンドを入力すると、C-x C-f(find-file)と同じように

P.59 3行目

サブディクレクトリ
サブディレクトリ

P.60 15行目付近

サブディクレクトリ
サブディレクトリ

P.61 下から2行目

サブディクレクトリ
サブディレクトリ

P.61 中央のコード部分

(when (>  emacs-major-version 23)
        (defvar user-emacs-directory "~/.emacs.d"))
(when (<  emacs-major-version 23)
        (defvar user-emacs-directory "~/.emacs.d/"))

※サンプルコード内の記述も同様の間違いがありましたので,サンプルコードも修正しています。

P.66 中央のコード部分

(when (>  emacs-major-version 23)
        (defvar user-emacs-directory "~/.emacs.d"))
(when (<  emacs-major-version 23)
        (defvar user-emacs-directory "~/.emacs.d/"))

※サンプルコード内の記述も同様の間違いがありましたので,サンプルコードも修正しています。

P.91 表5.2の6行目以降の「名前」

5行目までの「%b」「%f」と同様に,「%s」「%l」のようにすべて頭に「%」が必要です。

P.93 「C、C++、JAVA、PHPなどのインデント」

C、C++、JAVA、PHPなどのインデント
C、C++、Java、PHPなどのインデント

P.108 下から2行目(2ヵ所)

小数点
小数

P.129 リスト6.6「anything-c-moccurの設定例」の7行目

lanything-c-moccur-higligt-info-line-flag t
anything-c-moccur-higligt-info-line-flag t

※サンプルコード内の記述も同様の間違いがありましたので,サンプルコードも修正しています。

P.144 表6.4 1行目

新規スクリーン作成して移動する
新規スクリーン作成して移動する

P.172 「ruby-modeのインデントを調整する」の3行目

初期設定はスペース2つとタブ文字を使わないようになっています。
初期設定はスペース2つで、タブ文字使わないようになっています。

P.180 上から8行目

JAVA(要makeコマンドとMakefile、もしくはantコマンドとbuild.xml)
Java(要makeコマンドとMakefile、もしくはantコマンドとbuild.xml)

P.189 「gtagsとEmacsの連携」シェルコマンド部分

$ tar xvf global-6.1.tar.gz
$ ./configure
$ tar xvf global-6.1.tar.gz
$ cd ./global-6.1
$ ./configure

P.191 「ctagsとEmacsの連携」シェルコマンド部分

$ tar xvf ctags-5.8.tar.gz
$ ./ctags-5.8
$ ./configure
$ tar xvf ctags-5.8.tar.gz
$ cd ./ctags-5.8
$ ./configure

初版第1~2刷をお持ちの方(第3刷で修正済み)

P.97

次のように利用するテーマ名をinit.elに記述しておきます(注11)
注11 init.elに記述するテーマ名を調べるには、M-x color-theme-select RETして表示される選択画面でdを押します。

※上記脚注の追加に伴い,P.97の注11,P.98の注12の注番号が1つずれます。

補足情報

P.11 「Emacs.appを自分でビルドする」1行目

(2013年12月26日更新)

Mac OS付属の開発環境であるXcodeがインストールされていれば、Emacsの本家である「GNU Emacs - GNU Project」からソースをダウンロードしてEmacs.appを作ることもできます。

Mac OSのバージョンアップの結果、上記の動作にはCommand Line Toolsが必要になりました。Command Line Toolsの導入方法は、「Xcodeの設定からインストールする」「直接ダウンロードしてインストールする」の2つの方法があります。

Emacs 24.1への対応

本書はEmacs 23.4を動作環境として解説していますが、バージョン表記などに関わる部分を変更すれば、Emacs 24.1でも同様に動作します。Emacs 24.1を利用する際は、次の対応情報を参考にしてください。

(2012年7月11日更新)

P.10 7行目

対応前 Emacs.appの23.4、もしくは24の開発版
対応後 Emacs.appの23.4、もしくは24.1

P.11 「Emacs.appを自分でビルドする」のシェルコマンド部分

対応前
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.4.tar.gz
$ tar xvf emacs-23.4.tar.gz
$ cd emacs-23.4
$ ./configure --with-ns
$ make install
対応後
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-24.1.tar.gz
$ tar xvf emacs-24.1.tar.gz
$ cd emacs-24.1
$ ./configure --with-ns
$ make install

P.11 「Emacs.appを自分でビルドする」のシェルコマンド部分のすぐ下

対応前 これで./emacs-23.4/nextstep
対応後 これで./emacs-24.1/nextstep

P.12 「オフィシャルビルドを利用する」のアドレス

対応前 http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-23.3-bin-i386.zip
対応後 http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-24.1-bin-i386.zip

P.13 「Linuxへのインストール」のシェルコマンド部分

対応前
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.4.tar.gz
$ tar xvf emacs-23.4.tar.gz
$ cd emacs-23.4
$ ./configure
$ make
$ sudo make install
対応後
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-24.1.tar.gz
$ tar xvf emacs-24.1.tar.gz
$ cd emacs-24.1
$ ./configure
$ make
$ sudo make install

P.13 「ターミナル環境へのインストール」のシェルコマンド部分

対応前
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.4.tar.gz
$ tar xvf emacs-23.4.tar.gz
$ cd emacs-23.4
$ ./configure --without-x
$ make
$ sudo make install
対応後
$ curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-24.1.tar.gz
$ tar xvf emacs-24.1.tar.gz
$ cd emacs-24.1
$ ./configure --without-x
$ make
$ sudo make install

P.14 注13

対応前 Macであれば/Applications/Emacs.app/Contents/Resources/、Linuxであれば/usr/share/emacs/23.4/や/usr/local/share/emacs/23.4/など。
対応後 Macであれば/Applications/Emacs.app/Contents/Resources/、Linuxであれば/usr/share/emacs/24.1/や/usr/local/share/emacs/24.1/など。

P.28 「起動する」の5行目

対応前 もしくはemacs-23.4のように
対応後 もしくはemacs-24.1のように

P.59 「Elispをどのように配置すべきか」の7行目

対応前 /usr/local/share/emacs/23.4/site-lisp
対応後 /usr/local/share/emacs/24.1/site-lisp

P.67 下から1行目

対応前 php-modeはEmacs23現在標準で
対応後 php-modeはEmacs24現在標準で

P.112 「バージョンを指定する方法」コード部分

対応前
$ emacs-23.4 -batch -f batch-byte-compile ~/.emacs.d/elisp/auto-install.el
対応後
$ emacs-24.1 -batch -f batch-byte-compile ~/.emacs.d/elisp/auto-install.el

P.112 本文中頃

対応前 22以前のEmacsがインストールされている場合であっても、23.4を利用するようにするためです
対応後 22以前のEmacsがインストールされている場合であっても、24.1を利用するようにするためです

P.115 Emacs Lisp Package Archive(ELPA)の3行目

対応前 次期バージョンのEmacs 24からpackage.elというEmacs Lispパッケージマネージャ(以下、Elispパッケージマネージャ)が標準搭載となります。
対応後 Emacs 24からはpackage.elというEmacs Lispパッケージマネージャ(以下、Elispパッケージマネージャ)が標準搭載となりました

P.116 「Emacs 23へpackage.elをインストール」2行目

対応前 実は、このpackage.elはEmacs 23でもインストールすることで利用可能です。ぜひ一足お先に体験しましょう。
対応後 実は、このpackage.elはEmacs 23でもインストールすることで利用可能です。

P.159 「HTML5をnxml-modeで編集する」の1行目

対応前 Emacs 23.4現在
対応後 Emacs 24.1現在

P.165 「php-mode」の1行目

対応前 Emacs 23では、
対応後 Emacs 24では、

P.212 「sql-modeとの連携」の1行目から

対応前

 sql-interactive-modeを利用してデータベースに接続している状態で、C-x C-f example.sqlとしてファイルを作成してみましょう。「拡張子.sql」ファイルを開くと、自動的にsql-modeというメジャーモードが選択されるようになっています。example.sqlファイルにshow tables;と記述して、C-c C-cをタイプしてみましょう。すると、example.sqlに記述したSQL文が*SQLi*バッファ上で実行されます(図7.11)。

対応後

 sql-interactive-modeによりデータベースに接続している状態で、example.sqlというファイルを作成します。拡張子.sqlファイルは、標準でsql-modeというメジャーモードが選択されます。この状態でM-x sql-set-sqli-buffer-generallyコマンドを実行すると*SQLi*バッファと関連付けられ、example.sqlファイルにshow tables;と記述し、C-c C-cをタイプすると、example.sqlに記述されたSQL文が*SQLi*バッファ上で実行されます(図7.11)。

※Emacs 24.1から、sql-modeを起動しただけでは自動的に*SQLi*バッファとの接続を行わなくなったため、自発的にM-x sql-set-sqli-buffer-generallyコマンドの実行が必要となった。

商品一覧