http://rubikitch.com/に移転しました このページをアンテナに追加 RSSフィード

2010-10-30

[][]『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』増刷

この度、拙著Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』が増刷されました。

買っていただき、ありがとうございます

第2刷では正誤表 の誤りが修正されています。

長く品切れ状態が続いてきましたが、Amazonでの在庫も戻ってきました。現在は Amazonから買えます

2010-08-10

[][]『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』正誤

このたびは拙著 『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』 をお買上ありがとうございます。 本書には万全を期していますが、残念ながらいくつか誤りがありました。 申し訳ありません。

新たな誤植が見付かり次第、このページは更新されます。

p53 2.4 sticky.el大文字入力を楽にする〜 .emacsに加える設定

================================================================
誤
require 'sticky)
正
(require 'sticky)
================================================================

p167 8.1 col-highlight.el 〜現在桁をハイライトする〜 インストール方法

================================================================
誤
M-x auto-install-batch column-marker
正
M-x auto-install-batch col-highlight
================================================================

p48 2.1 ddskk 〜日本語入力を行う〜 表2

================================================================
誤
kimono SPC   着物
正
Kimono SPC   着物
================================================================

p17 0章 本書を読む前に 表4

<2010-08-12 木>

================================================================
誤
Emacs終了 C-x C-e
正
Emacs終了 C-x C-c
================================================================

p49 2.2 auto-install.elEmacs Lispインストーラを利用する〜 インストール方法

<2010-08-12 木>

================================================================
誤
~/.emacs.d/auto-install.el
正
~/.emacs.d/auto-install/auto-install
================================================================

<2010-09-04 土> 本当に申し訳ありません。load-pathの設定を最初にやらないとrequireエラーが起きます。正しくはこれです。

;; auto-installによってインストールされるEmacs Lispをロードパスに加える
;; デフォルトは ~/.emacs.d/auto-install/
(add-to-list 'load-path "~/.emacs.d/auto-install/")
(require 'auto-install)
;; 起動時にEmacsWikiのページ名を補完候補に加える
(auto-install-update-emacswiki-package-name t)
;; install-elisp.el互換モードにする
(auto-install-compatibility-setup)
;; ediff関連のバッファを1つのフレームにまとめる
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

p102 4.13 wdired.elディレクトリ内のファイル名を自由自在編集する〜

<2010-08-14 土>

================================================================
誤
M-! (query-replace) で置換 (7.4参照)   
正
M-% (query-replace) で置換 (7.4参照)   
================================================================

p14 本書を読む前に 表1

<2010-08-14 土>

================================================================
誤
│ Hyper H- │    │
正
│ Hyper    │ H- │
================================================================

id:peccuさん、御指摘感謝です。

p173 twittering-mode.eltwitterを利用する〜 表1

<2010-08-19 木>

================================================================
誤
そのユーザの前のつぶやきへする
正
そのユーザの前のつぶやきへ移動する
================================================================

p32 requireEmacs Lispファイルをロードする〜

<2010-08-22 日>

================================================================
誤
ディレクトリ (~/.emacs.dl) を load-path に加える必要があります。   
正
ディレクトリ (~/.emacs.d/) を load-path に加える必要があります。   
================================================================

p36 M-x list-load-path-shadows 〜load-path優先度問題を解決する〜

<2010-08-22 日>

================================================================
誤
emacs.d/" "usr/share/emacs") だとして、
正
emacs.d/" "/usr/share/emacs") だとして、
================================================================

p250 text-translator.el言語自動判別して複数のWeb翻訳サービスを同時に使う〜 インストール方法

<2010-08-22 日>

================================================================
誤
M-x auto-install-batch translator
正
M-x auto-install-batch text translator
================================================================

text translatorで正しいです。

p127 yasnippet.el略語から定型文を入力する〜 .emacsに加える設定

<2010-08-22 日>

================================================================
誤
(yas/setup "~/.emacs.d/plugin/yasnippet")
正
(yas/setup "~/.emacs.d/plugin/yasnippet-0.6.1c")
================================================================

第1、2刷共通! p251 html-fold.elHTMLXMLの要素を隠して見栄えをよくする〜

<2010-11-10 水>

================================================================
誤
M-x install-elisp http://pop-club.hp.infoseek.co.jp/emacs/html-fold/html-fold.el
正
M-x install-elisp https://github.com/ataka/html-fold/raw/master/html-fold.el
================================================================

hp.infoseek.co.jpが閉鎖されたため、URL変更による修正です。 最新版のauto-install.elで実行してください。

To id:dython3k

<2010-11-10 水>

infoのパスについて

Info-directory-listでも動作するはずです。

githubのhttps化について

githubはhttpでアクセスするとhttpsにリダイレクトされますね。 これについてはauto-install.elの方で対処しておきました。 url-retrieveだとうまくいかないのでwgetを優先的に使うようにしました。

2010-08-03

[][]新刊『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』本日発売

お待たせしました。 新刊『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』が今日発売されます。 本書は、Emacsユーザを対象にEmacs本来の力を発揮させることをコンセプトとしています。

注文はこちらから→http://www.amazon.co.jp/gp/product/4774143278

2010-07-17

[][]新刊『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』目次とサンプルページ

お待たせしました。 出版社からGOサインが出ましたので、新刊『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』 の目次とサンプルページを公開します。 近日 http://gihyo.jp/book/list にも載るでしょう。

この本は頭から読むことで徐々に装備を整えていくことができる一方、やりたいことを実現するためには何をすべきなのかを逆引きすることもできます。 本書のテーマは「Emacsカイゼン」です。 外部Emacs Lispにより装備をガンガン強化していくことを念頭に置いています。 RPGで武器や防具を装備して強くなることや、自作PCで新たなパーツを買うところを想像していただけれたらと思います。

<2010-07-20 火> Update: サンプルPDFがAdobe Readerで見られない不具合を解消しました。

サンプルページPDF

目次公開にあたって

知識は力なり

装備を整えていく際、どうしても避けられないのが.emacsに設定を追加することです。 .emacsに書くのは、御存知Emacs Lispです。 EmacsにはM-x customizeでGUIによる設定もできますが、残念ながら包括的ではありません。 どうしても.emacsを手で記述する必要があります。 そのため、設定に必要なEmacs Lispの知識を最初に紹介します。

正直、1章からいきなりEmacs Lispを持っていくのは勇気が必要でした。 もちろん読み飛ばして、本書に書いてある設定を丸写ししても外部Emacs Lispを使うことができます。 しかし、「知識は力なり」と言います。 意味もわからず行動するよりも、知識を持つことで自分が何をやっているのかがわかるようになります。 知識を持つことで、トラブルを未然に防ぎ、困ったときに自分で解決する力を養うことができます。 1章の知識は、なぜこの設定が必要なのかを考えたり、設定を変更する際にはどうしても避けられない背景知識となります。 最低限の知識を持つことが、目的を達成するための最短ルートと判断したため、このような構成にしました。 急がば回れです。

実際、Emacsが毛嫌いされる理由は、Emacs Lispの知識が不可避なところだと思います。 プログラミング経験のない読者にはわかりにくいかもしれません。 ここは初めての人にもわかりやすく書きました。 最初はわからなくても流し読みして「こんなものがある」と頭の片隅にでも置いておけばよいです。 レベルが上がったときに再び1章に戻れば、納得がいくと思います。 他のエディタからEmacsへ乗り換える人は、がんばって乗り換えてください。

バグ

本当に申し訳ありません。 本書には万全を期していましたが、残念なことに印刷所に入稿後にバグを発見してしまいました。

  1. 9(p35)のauto-async-byte-compile.elは外部Emacs Lispです。

そのため、2.2(p49)でauto-install.elを導入しないとM-x install-elisp-from-emacswikiが使えません。

目次

  3 ■■はじめに
 13 ■■本書を読む前に

 19 ■■■Chapter01 設定に必要な最低限のEmacs Lispの知識
 20 ■本章に入る前の基礎知識
 22 ■1.1 コマンド 〜Emacsに命令する
 24 ■1.2 S式 〜Emacs Lispの構成要素を知る
 26 ■1.3 評価 〜Emacs Lispプログラムを実行する
 28 ■1.4 関数 〜前置記法を知る
 29 ■1.5 M-x ielm 〜Lisp 式(S式)を対話的に評価する
 31 ■1.6 .emacs 〜Emacs起動時に自動で読み込むファイルを作成する
 32 ■1.7 require 〜Emacs Lispファイルをロードする
 34 ■1.8 M-x byte-compile-file 〜Emacs Lispファイルをバイトコンパイルする
 35 ■1.9 auto-async-byte-compile.el 〜自動バイトコンパイルをする
 36 ■1.10 M-x list-load-path-shadows 〜load-path優先度問題を解決する
 37 ■1.11 M-; 〜コメントを処理する
 39 ■1.12 setq 〜変数に値を設定する
 40 ■1.13 defun 〜関数を定義する
 41 ■1.14 add-hook 〜特定のタイミングで呼び出される関数を登録する
 43 ■1.15 C-x C-e 〜テキストに埋め込まれたEmacs Lisp式を評価する

 45 ■■■Chapter02 初期装備に必要な知識
 46 ■本章に入る前の基礎知識
 47 ■2.1 ddskk 〜日本語入力を行う
 49 ■2.2 auto-install.el 〜Emacs Lispインストーラを利用する
 52 ■2.3 ELPA 〜パッケージを簡単にインストールする
 53 ■2.4 sticky.el 〜大文字入力を楽にする
 54 ■2.5 <f1> 〜Emacsに問い合わせする
 56 ■2.6 日本語 info 〜日本語マニュアルを導入する
 57 ■2.7 info 〜infoドキュメントを読む


 61 ■■■Chapter03 キーバインドについて
 62 ■本章に入る前の基礎知識
 63 ■3.1 キーマップ〜押されたキーに対してコマンドを探索する
 65 ■3.2 Ctrl+1文字 〜最重要コマンドを覚える
 67 ■3.3 Meta+英小文字 〜重要コマンドを覚える
 69 ■3.4 プレフィクスキー 〜2ストローク以上のコマンドを覚える
 71 ■3.5 define-key 〜キーマップを変更する
 73 ■3.6 define-key 〜Ctrl+1文字に割り当てられるキーを探す
 75 ■3.7 define-key 〜その他に割り当てられるキーを探す
 76 ■3.8 sequential-command.el 〜同じコマンドを連続実行したときの振舞いを変更する
 78 ■3.9 key-chord.el 〜キーボード同時押しでコマンドを実行する
 79 ■3.10 minor-mode-hack.el 〜マイナーモード衝突問題を解決する


 81 ■■■Chapter04 バッファファイルを扱う
 82 ■本章に入る前の基礎知識
 83 ■4.1 ffap.el 〜現在位置のファイルURLを開く
 84 ■4.2 uniquify.el 〜ファイル名がかぶった場合にバッファ名をわかりやすくする
 85 ■4.3 iswitchb.el 〜バッファ切り替えを強化する
 87 ■4.4 recentf.el 〜最近使ったファイルを開く
 89 ■4.5 bookmark.el 〜ファイル内の特定の位置をブックマークする
 91 ■4.6 emacsclient 〜シェルから現在のEmacsアクセスする
 93 ■4.7 tempbuf.el 〜使わないバッファ自動的に消す
 94 ■4.8 auto-save-buffers.el 〜ファイル自動保存する
 95 ■4.9 C-x v v 〜バージョン管理システムに登録する
 97 ■4.10 C-x v =,C-x v u 〜バージョン管理システムで変更点を調べる・取り消す
 98 ■4.11 C-x v l 〜バージョン管理システムで変更履歴を見る
100 ■4.12 C-x C-f,C-x d 〜ファイルリストからファイルを操作する
102 ■4.13 wdired.el 〜ディレクトリ内のファイル名を自由自在編集する
103 ■4.14 tramp.el 〜リモートマシンのファイルに透過的にアクセスする
104 ■4.15 sudoedit 〜root権限でファイル編集する


105 ■■■Chapter05 カーソル移動
106 ■本章に入る前の基礎知識
107 ■5.1 文字・単語・行・文単位の移動 〜矢印キーを使わずにカーソルを移動する
108 ■5.2 M-x transient-mark-mode 〜リージョンに色をつける
110 ■5.3 screen-lines.el 〜見かけの行でカーソルを移動する
111 ■5.4 C-s,C-r 〜インクリメンタルサーチで対象文字列の位置にカーソル移動する
113 ■5.5 migemo.el 〜ローマ字のまま日本語をインクリメンタルサーチする
115 ■5.6 point-undo.el 〜カーソル位置を戻す
116 ■5.7 bm.el 〜カーソル位置に目に見える印をつける
117 ■5.8 goto-chg.el 〜最後の変更箇所にジャンプする


119 ■■■Chapter06 入力支援
120 ■本章に入る前の基礎知識
122 ■6.1 autoinsert.el 〜ファイル作成時にテンプレートを挿入する
123 ■6.2 redo.el 〜「やり直し」をカイゼンする
124 ■6.3 sense-region.el 〜矩形を選択しやすくする
126 ■6.4 M-/  〜バッファから単語を補完する(動的略語展開)
127 ■6.5 yasnippet.el 〜略語から定型文を入力する
129 ■6.6 yasnippet.el 〜スニペットを定義する
132 ■6.7 yasnippet.el 〜スニペットを展開するコマンドを定義する
133 ■6.8 yasnippet.el 〜新規作成ファイル自動でスニペットを展開する
134 ■6.9 yasnippet.el 〜スニペットをその場で定義して使う
136 ■6.10 M-x hippie-expand 〜略語展開・補完を行うコマンドをまとめる
138 ■6.11 <f3>,<f4> 〜キーボードマクロで操作を自動化する
140 ■6.12 M-x kmacro-save 〜キーボードマクロをコマンド化する
142 ■6.13 再帰編集 〜コマンド実行中に新たなコマンドを実行する
143 ■6.14 auto-complete.el 〜IDEのような入力支援をする


145 ■■■Chapter07 検索・置換
146 ■本章に入る前の基礎知識
148 ■7.1 M-x re-builder 〜正規表現を対話的に作成する
149 ■7.2 M-x occur 〜バッファ内で正規表現にマッチする行を出力する
150 ■7.3 M-s o (isearch-occur) 〜インクリメンタルサーチからマッチ行一覧を作成する
151 ■7.4 M-% 〜文字列を置換する
153 ■7.5 C-M-% 〜正規表現置換をする
155 ■7.6 color-moccur.el 〜バッファ内(複数可)を検索する
157 ■7.7 moccur-edit.el 〜color-moccur.elの結果を編集する
159 ■7.8 M-x grep 〜grepプログラムの実行結果に飛ぶ
161 ■7.9 igrep.el 〜grepのコマンドラインを打たずにgrep検索する
162 ■7.10 grep-a-lot.el 〜複数の*grep*バッファを使う
163 ■7.11 grep-edit.el 〜grep検索結果を編集する


165 ■■■Chapter08 Emacsをもっと便利に
166 ■本章に入る前の基礎知識
167 ■8.1 col-highlight.el 〜現在桁をハイライトする
169 ■8.2 M-x highlight-regexp 〜正規表現にマッチした部分を自動ハイライトする
170 ■8.3 M-x follow-mode 〜ワイドディスプレイを有効活用する
171 ■8.4 w3m.el (emacs-w3m) 〜Webブラウザとして利用する
173 ■8.5 twittering-mode.el 〜twitterを利用する
175 ■8.6 gist.el 〜gist.github.comを利用する
176 ■8.7 navi2ch.el 〜2ちゃんねるブラウザを利用する
178 ■8.8 rcirc.el 〜シンプルなIRCクライアントを利用する
179 ■8.9 yaoddmuse.el 〜EmacsWiki編集する
181 ■8.10 yaoddmuse.el 〜Emacs LispファイルEmacsWikiにアップロードする
182 ■8.11 EmacsWiki svn リポジトリ 〜EmacsWikiのリポジトリを丸ごと取得する
184 ■8.12 M-x customize-group 〜GUIで変数・フェイスをカスタマイズする



187 ■■■Chapter09 外部プログラム
188 ■本章に入る前の基礎知識
189 ■9.1 M-x shell 〜Emacsでシェルを動かす
191 ■9.2 M-x dired-do-shell-command 〜diredからシェルコマンドを実行する
192 ■9.3 M-!,M-| 〜シェルコマンドの実行結果を表示・貼り付けする
194 ■9.4 multi-shell.el 〜複数のshellバッファを利用する
195 ■9.5 M-x compile 〜Emacsの中でコンパイラを動かす
196 ■9.6 M-x executable-interpret 〜スクリプトを実行する
197 ■9.7 M-x diff 〜2つのファイルの相異点を出力する
198 ■9.8 shell-history.el 〜Emacs内のシェルコマンド実行履歴を保存する
199 ■9.9 multi-term.el 〜Emacsで端末エミュレータを利用する


201 ■■■Chapter10 テキスト整形/テキスト処理
202 ■本章に入る前の基礎知識
203 ■10.1 text-adjust.el 〜日本語の文章を整形する
205 ■10.2 M-x sort-lines 〜行をソートする
207 ■10.3 C-x r t,C-x r k,C-x r d 〜引用マークを付けたり外したりする
208 ■10.4 boxes 〜コメントを目立たせる・装飾する
210 ■10.5 M-x align 〜桁揃えをする


213 ■■■Chapter11 view-modeを徹底活用
214 ■本章に入る前の基礎知識
216 ■11.1 C-x C-r 〜view-modeでファイルを開く
217 ■11.2 C-x C-q 〜view-modeを有効・無効にする
218 ■11.3 define-key 〜view-modeのキー割り当てを変更する
219 ■11.4 viewer.el 〜書き込み不能なファイルでview-modeから抜けないようにする
220 ■11.5 viewer.el 〜view-modeのときにmode-lineに色をつける
221 ■11.6 viewer.el 〜メジャーモードに合わせてview-modeのキーバインドを設定する
222 ■11.7 viewer.el 〜特定のファイル・すべてのファイルをview-modeで開く


223 ■■■Chapter12 Emacs Lispプログラミング支援
224 ■本章に入る前の基礎知識
225 ■12.1 C-M-f,C-M-b,C-M-d,C-M-u,C-M-SPC,C-M-k,C-M-t 〜S式・リストを編集する
227 ■12.2 C-M-a,C-M-e,C-M-h 〜関数間を移動・関数をマークする
228 ■12.3 paredit.el 〜括弧の対応を取りながらS式を編集する
231 ■12.4 eldoc.el 〜Emacs Lisp関数・変数のヘルプをエコーエリアに表示する
232 ■12.5 C-x F,C-x K,C-x V 〜関数定義へジャンプする
233 ■12.6 usage-memo.el 〜*Help*バッファにメモを書き込めるようにする
234 ■12.7 M-x apropos 〜正規表現にマッチする変数名・関数名・フェイスを探す
236 ■12.8 M-x apropos-value 〜値にマッチする変数名を検索する
237 ■12.9 M-x apropos-documentation 〜ドキュメントにマッチするシンボルを検索する
238 ■12.10 M-x apropos-library 〜ライブラリの定義内容を知る
239 ■12.11 lispxmp.el 〜Emacs Lisp式の値をコメントで注釈する
240 ■12.12 edit-list.el 〜リスト変数の内容を編集する
241 ■12.13 el-expectations.el 〜ユニットテストを書く
243 ■12.14 batch-byte-compile 〜コマンドラインからバイトコンパイルする


245 ■■■Chapter13 プログラミング/文書作成支援
246 ■本章に入る前の基礎知識
247 ■13.1 open-junk-file.el 〜使い捨てのファイルを開く
248 ■13.2 summarye.el 〜バッファのサマリを表示する
250 ■13.3 text-translator.el 〜言語自動判別して複数のWeb翻訳サービスを同時に使う
251 ■13.4 html-fold.el 〜HTMLXMLの要素を隠して見栄えをよくする
253 ■13.5 M-x ediff-files 〜2つのファイルの相異点をハイライトする・取り込む
255 ■13.6 M-x ediff-merge-files 〜2つのファイルをマージしたファイルを作成する
256 ■13.7 hideif.el 〜C言語のプリプロセッサを隠す
257 ■13.8 hideshow.el 〜ブロックを折畳む
258 ■13.9 M-x imenu 〜現在のファイルにある関数定義にジャンプする(言語非依存)
259 ■13.10 M-x which-func-mode 〜現在の関数名を常に表示する
260 ■13.11 M-x flymake-mode 〜リアルタイムにプログラミング言語の文法チェックをする
262 ■13.12 ipa.el 〜ファイルに直接書き込まずにメモをする
264 ■13.13 multiverse.el 〜ファイルのスナップショットを取る
265 ■13.14 M-. 〜タグファイルを使って関数定義へジャンプする(言語非依存)
267 ■13.15 gtags.el 〜GNU GLOBALでソースコード解析を楽にする
269 ■13.16 fold-dwim.el 〜複数の折畳み・展開コマンドに統一的なインターフェースを提供する


271 ■■■Chapter14 org-mode 〜統合文書作成環境
272 ■本章に入る前の基礎知識
274 ■14.1 M-RET,<M-left>,<M-right> 〜見出し・項目を入力する
275 ■14.2 M-x org-insert-heading-dwim 〜1階層下・上の見出し・項目を入力する
276 ■14.3 <M-up>,<M-down> 〜行・見出し・リストを移動する
277 ■14.4 M-x org-remember 〜瞬時にメモを取る
280 ■14.5 「|」,TAB 〜表を作成する
282 ■14.6 C-c C-t,<S-up>,<S-down> 〜TODOリストを作成する
284 ■14.7 C-c C-s,C-c C-d 〜予定日時、締切日時を設定する
286 ■14.8 C-c C-q,C-c C-c,C-c / T 〜タグを作成・検索する
288 ■14.9 C-c l,C-c C-l 〜ハイパーリンクを作成する・辿る
291 ■14.10 *bold* /italic/ _underline_ =code= +del+ 〜文書を装飾する
292 ■14.11 「:」,#+BEGIN_EXAMPLE〜#+END_EXAMPLE 〜そのまま出力する
293 ■14.12 [/],[ ],C-c C-c 〜チェックリストを作成する
294 ■14.13 #+INCLUDE: 〜別なファイルを取り込む
295 ■14.14 C-c a 〜予定表を見る
298 ■14.15 C-c C-e 〜HTMLに変換する


301 ■■■Chapter15 anything.el 〜すべてを統べるものとその仲間たち
302 ■本章に入る前の基礎知識
306 ■15.1 <f1> m 〜ヘルプで使い方を覚える
307 ■15.2 C-p,C-n,RET,C-v,M-v 〜オブジェクトを選択する
309 ■15.3 RET,TAB,C-e,C-j 〜アクションを実行する
310 ■15.4 <left>,<right>,C-o 〜複数の情報源を扱う
311 ■15.5 M-x anything-for-files 〜ファイルを開くコマンドをまとめる
314 ■15.6 C-z(継続アクション) 〜anythingバッファを閉じずにアクションを実行する
315 ■15.7 M-x anything-resume 〜直前のanythingセッションを復元する
316 ■15.8 M-x anything-execute-anything-command 〜設定済みanythingを試す
318 ■15.9 M-x anything-call-source 〜情報源を試す
319 ■15.10 descbinds-anything.el 〜キーバインドを調べる
321 ■15.11 M-x anything-complete-shell-history 〜シェルコマンドの履歴から補完
322 ■15.12 M-x anything-apropos 〜コマンド名・関数名・変数名・フェイス名検索をする
323 ■15.13 M-x anything-show-kill-ring 〜過去のkill-ringの内容を取り出す
324 ■15.14 M-x anything-lisp-complete-symbol-partial-match 〜Emacs Lispシンボルを補完する
325 ■15.15 M-x anything-grep 〜grep結果をさらに絞り込む
326 ■15.16 anything-c-moccur.el 〜インクリメンタルサーチとoccurを合体する
328 ■15.17 C-c C-u 〜候補を再計算する
329 ■15.18 anything-other-buffer 〜anythingコマンドを定義する
331 ■15.19 変数 〜anythingをチューニングする


333 ■■■Chapter16 anything.elプログラミング
334 ■本章に入る前の基礎知識
339 ■16.1 type 〜オブジェクトの型を宣言して情報源を作成する
341 ■16.2 init 〜情報源の初期化をする
342 ■16.3 candidates-in-buffer 〜バッファの行から情報源を作成する
345 ■16.4 candidates-file 〜ファイルの行から情報源を作成する
346 ■16.5 grep-candidates 〜ファイルの行から情報源を作成する(高速版)
347 ■16.6 candidates,display-to-real,real-to-display 〜候補の見た目を変更する
349 ■16.7 candidate-transformer,filtered-candidate-transformer 〜候補全体を加工する
351 ■16.8 header-name 〜ヘッダを変更する
352 ■16.9 delayed,requires-pattern 〜処理時間のかかる情報源を作成する
354 ■16.10 volatile 〜入力のたびにcandidates関数を実行する
355 ■16.11 persistent-action 〜継続アクションを指定する
357 ■16.12 anything-candidate-number-limit,candidate-number-limit 〜候補数を変更する
358 ■16.13 dummy 〜パターンをそのまま候補にする
359 ■16.14 multiline 〜複数行にわたる候補を使う
361 ■16.15 type:line 〜特定の行番号へジャンプする情報源を作成する
362 ■16.16 headline 〜正規表現にマッチする行を出力する情報源を作成する
364 ■16.17 type:file-line 〜特定のファイルの行番号へジャンプする情報源を作成する
365 ■16.18 anything-marked-candidates 〜マークされた候補を得る
366 ■16.19 anything 〜anythingの呼び出し方を細かく制御する
367 ■16.20 anything-test-candidates 〜情報源をテストする
369 ■16.21 anything-debug-forms 〜デバッグをする
370 ■16.22 anything-attr,anything-attrset,anything-attr-defined 〜属性の値を参照・設定する
373 ■16.23 anything-compile-source-functions 〜anythingプラグインを作成する


375 ■■索引
380 ■■逆引き索引

予約注文受付中

注文はこちらから→http://www.amazon.co.jp/gp/product/4774143278

はてなブックマーク→http://b.hatena.ne.jp/entry/www.amazon.co.jp/gp/product/4774143278

返事

To 23.1.1試行錯誤中

サンプルページ PDF をダウンロードしてみたのですが、ページを表示させると真っ白でページ内容が見えません。

#環境は WinXP + Adobe Reader 9.3.3 です

あらら。xpdfでは表示されますが、acroreadでは無理ですね。連絡しておきます。

2010-07-13

[][]新刊『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』8/3発売

みなさん、楽しくEmacsしていますか?

この度、技術評論社より『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』を発刊することになりました。

Emacsには無数のコマンド、操作方法、Lispプログラム、設定があって、ムズカシイし、ややこしいですね。 あなたもきっと、そんな印象を持っているかと思います。

Emacsは現在、新しい時代へ向かっています。 Emacsは歴史のあるソフトウェアですが、ここ数年で多くの先進的なLispプログラムが登場してきました。

本書は次世代Emacsのありかたについてあなたにお伝えするものです。 本書をマスターすれば、Emacsの便利さを再発見し、Emacsユーザの最先端を走ることができます。

<2010-07-17 土> Update: 目次を公開しました

<2010-08-10 火> Update: 正誤表

筆者とEmacs

本書の内容に入る前に、筆者の歩んできた道を紹介しましょう。

1993年春、筆者が初めてパソコンと出会いました。 当時はWindowsではなくてMS-DOSの時代でした。

MS-DOSとは、乱暴に言えば低性能のパソコンで動く劣化Unixみたいなものです。 今のようにグラフィカルな画面で操作するのではなく、コマンドラインからコマンドを打って操作するものでした。 「ワープロソフトは重いから、ちょっとした文章を書くならテキストエディタで」と言われていました。 エディタはNIT Emacsを使っていました。 これは、「にてまっくす」と呼びEmacsの縮小版です。 当時のパソコンでは、本物のEmacsはあまりにも大きすぎて動かなかったのです。 Emacsとはナニモノ? エディタは軽いという常識を覆すEmacsに好奇心をかりたてられ、使いたくてたまらなくなりました。

1996年夏、Linuxという名のパソコンで動くUnixクローンがあることを知りました。 Unixへの憧れが強かった筆者は、迷わずWindows95を捨ててLinuxをインストールしました。 そして、コマンドラインからemacsと打ち込んだとき、起動しました、夢にまで見た本物のEmacs(当時はEmacs19)です。 M-x (Altキーを押しながらx)の後にTABを押すと、補完ウィンドウにNIT Emacsには存在しない無数のコマンドがざっくざく出てきました。 質素すぎるあの画面から、広い世界への入口を感じました。 これが筆者とEmacsとの出会いです。

しばらくEmacsを使ってみて、気付きました。 「こうしたいんだけど、いったいどう操作すればいいんだ?」、「こういう機能が欲しいんだけど、どのコマンドを使えばいいんだ?」、などなど無数の疑問が出てきました。 当時は今のようにインターネットが発達しているわけではなかったので、調べるのは容易ではありませんでした。 Emacsに詳しい人も、近くにはいませんでした。

Linuxのメーリングリストやフォーラムで質問すれば誰か答えてくれるかもしれない、と思い、わからないところを質問していきました。 しかし、返ってきた答えは「そんなの自分で調べろ」など厳しい言葉が多かったのを覚えています。 調べ方がわからないから質問してるのでしょ、という言葉を胸に秘め、メーリングリストから遠ざかっていきました。

Emacsは、Emacs Lispというプログラミング言語を使って自由自在に機能を追加することができます。 幸いEmacs Lisp日本語マニュアルがありました。 ならば自分で実現してしまおう、という発想でEmacs Lispを勉強し始めました。 今思えば、既存の機能を自分で実装して、いわゆる車輪の再発明をしていたことでしょう。 しかし、その機能へ到達する道筋がわからなかったのです。

なんとか欲しい機能(コマンド)を実装したものの、今度は別の問題に直面しました。 コマンドは自由にキーに割り当てることができますが、「割り当てたキーが覚えられない」、「せっかくキーに割り当てても使わないうちにキーを忘れてしまう」問題です。 気付くとコマンドの存在そのものも忘れてしまいます。 最初は便利だと思っても、時間がたつにつれて使わないコマンドが出てくるものです。 そして、使わないものは忘れてしまうのが人間です。 そんな感じで、幾多のコマンドが生まれては(頭の中から)消えてきました。

時はたち、インターネット常時接続時代が来ました。 自作Emacs Lispを公開する場所ができたので、ちょくちょく公開していきました。 それでも、「覚えられない問題」は相変わらず深刻で、解決しようといろいろ考えました。 この問題の解決ができないまま、時ばかりが過ぎていきました。 Emacsは難しい、覚えられない、そして、きりがない。 とにかくもがき苦しみました。

2007年夏、anything.elというLispプログラムが登場したことで転機が訪れました。 何かクエリを入力すると、適切な機能が提示されるという奇跡のLispプログラムです。 その革新的インターフェースに、筆者は魅了されました。 もう複雑なコマンドを覚えなくてもいいのです。 もうもがき苦しまなくてもいいのです。 そして、そのことをブログに書くと、 またたくうちに日本でもanythingブームが訪れました。 Software Designにもanythingの記事を書きました。

奇跡はまだ終わりません。 ちょうど1年後、2008年にanythingの開発を引き継ぐことになりました。 原作者はanything開発の時間が取れないとのことで、熱烈なanythingファンの筆者がすぐに次期開発者として名乗りを上げ、了承されました。 バグを修正し、使いやすくするために大幅に機能を追加しました。 その結果、コードは約4倍に膨れ上がりました。 熱狂的なファンも増えました。 anythingを使ったLispプログラムもたくさん登場しました。 いつしかanythingがないと生きていけない様を表す「anything脳」という言葉も登場しました。 anythingで生産性が上がった人がたくさんいます。 そして現在は「anythingのるびきち」として知られるようになりました。

本書について

このように、筆者とEmacsの付き合いは平坦なものではありませんでした。 それでも筆者は長年のパートナーであるEmacsを心から愛しています。 ベテランユーザになった今でも、よりよい問題解決法を模索しています。 その中で得た選りすぐりのテクニックを200個、あなたに継承します。

本書は最小限の労力で楽しく実用的にEmacsを使えるようにするための新しいタイプの解説書です。読者対象は主にEmacsを使ったことのある人向けですが、テキストエディタとは何かということを知っている人ならば読めるように書いています。あなたがEmacs初心者または他のテキストエディタからの乗り変え組ならば、Emacsがどうあるべきかという道筋が見えてくるでしょう。なんとなくEmacsを使っている人ならば、よりよい方法が見つかるでしょう。特に、Emacsは難しすぎて挫折してしまった人には本書でEmacsの良さを再発見できるでしょう。もうもがき苦しむ必要はありません。

多くの解説書ではEmacs標準の機能の解説に重点を置いていますが、本書は外部Lispプログラムに目を向けています。なぜなら、外部Lispプログラムには既存の機能とは異なる発想で作成されていたり、既存の機能をより良くしていくものが多いからです。より良いものをどんどん取り入れていった結果、作業しやすい環境が出来上がってきます。

本書が掲げている「カイゼン」という言葉には、自らの手で現状をより良くするという意味があります。改善という日本語がKaizenとして今や世界で通用する言葉になっています。Emacsにおけるカイゼンとは使いやすくするということです。使いやすいとは、使うための労力を最小限にすることだと筆者は考えています。本書では「覚えることを最小限にする」ことと「指の負担を軽減する」ことに焦点を当てます。

ラスト2章ではあらゆる事柄を統一的に扱う最新インターフェースanythingを開発者自ら紹介します。それ以前の章ではカイゼンにつながるいろいろなLispプログラムを紹介します。個々のLispプログラムについてはとりあえず使ってみてください。使い方を無理に覚えなくてもかまいません…どうせ最後には統合されるのですから。

本書を最後まで読み切れば、Emacsの「今」がわかるでしょう。逆引き形式で書かれているので、必要に応じて部分読みすることもできます。

次はあなたが先進Emacsユーザになる番です!

予約注文受付中

注文はこちらから→http://www.amazon.co.jp/gp/product/4774143278

はてなブックマーク→http://b.hatena.ne.jp/entry/www.amazon.co.jp/gp/product/4774143278

返事

To 23.1.1試行錯誤中

目次公開しました。

To id:maskin

ありがとうございます。 僕もこの本はemacs+org-mode+skkで執筆しました、奇遇ですね。 書籍の原稿を1つのorgファイルにするとHTML変換がめちゃくちゃ遅いので、非同期化するhackを噛ましましたが。

To id:inouetakuya

電子化の予定は今の時点ではありません。

To id:at-aka

http://at-aka.blogspot.com/2010/07/emacs.html

応援記事ありがとうございます

ちなみにfcopy.el便利に使ってます。 GNU Screenみたいな感じでなかなかイケてる割に、ユーザが少ないのが不思議です。