おすすめEmacs設定20122012-03-202012年3月にEmacsの入門書が技術評論社から出版されました。https://amazon.co.jp/dp/9784774150024インストール方法やファイルの開き方などから始まっていて初心者向けの始まり方になっています。それでは初心者向けなのかというとそうでもなく、中盤から後半はrequireしないと使えないElispを使った拡張方法の紹介になっています。初心者の人は1/3か1/2くらい進んだところで一度脱落するのではないでしょうか。逆に、ある程度知っている人は中盤から後半にかけて興味のある話題が増えていくことでしょう。脱落してしまった人は、しばらく前半の機能でEmacsを使って、慣れてきてから再挑戦するとよいでしょう。後半の拡張方法の紹介部分では多くの方法を紹介するためか、1つ1つの方法については簡単に紹介する程度にとどまっています。つっこんだ使い方までは踏み込んでいません。そのため、すでに最近のEmacs界隈の状況を把握している人やバリバリカスタマイズして使っている人にとっては物足りない内容かもしれません。ない人は、こんな方法があるのかと気づくことも多いでしょう。いうことで、今ひとつEmacsを使いこなせていない感のある人は読んでみてはいかがでしょうか。Emacsがより手になじむことになるでしょう。おすすめEmacs設定2012さて、Emacsが手になじむようになるには自分がEmacsに慣れるだけではなく、Emacsにも自分に歩み寄ってもらうことが近道です。そのためにEmacsの設定をカスタマイズします。約1年前におすすめEmacs設定を紹介しました。ここで紹介した設定は基本的なものだけに限定していましたが、より細かい設定やrequireしないと使えないElispの設定も増えています。それでは、1年経ったおすすめEmacs設定を紹介します。ディレクトリ構成まず、ディレクトリ構成が変わりました。設定ファイルのディレクトリ構成はEmacs実践入門でも提案されていますが、ここではまた違った構成にしています。Emacs実践入門でも「筆者もこの設計がベストだとは思っておらず、より良い配置を模索中です。優れた設計を考えてみてください。」1と書かれているので、自分になじむ構成を見つけてください。24に標準搭載されることになったため、el-getに乗り換えました。el-getにした理由は元々使っていたパッケージ管理システムと同じことができたからです。基本的な設定それでは、まず、基本的な設定を説明します。ロードパス以前は~/.emacs.d/packagesもパスに入っていましたが、el-get管理になったので除きました。nil)キーバインドC-hの設定をdefine-keyではなくkeyboard-translateを使うようにしました。c-electric-backspaceを明示的にdefine-keyしなくてもよいことに気づいたからです。キー入力中にC-hを押してもキーバインド一覧が出てこないのは不便なのでdefine-keyに戻すかもしれません。ウィンドウ移動用のキーバインドも追加しました。'previous-multiframe-window)便利なのがM-C-gのgrepです。grepにはまだ設定があります。1)))-rオプションを追加して常に再帰的にgrepするようにします。grep-findなどを使い分けなくてもすみます。t)バッファ内で画像ファイルを表示します。対応する括弧を光らせる。ウィンドウ内に収まらないときだけ括弧内も光らせる。'mixed)昔はmic-paren.elも使っていましたが、標準の機能で十分なので、もう使っていません。空白1年前はshow-trailing-whitespaceを使っていましたが、より多くの空白を視覚化できるwhitespace-modeを使うようにしました。空白や長すぎる行を視覚化する。1行が80桁を超えたら長すぎると判断する。faceを使って視覚化する。行末の空白を対象とする。タブの前にあるスペースを対象とする。タブの後にあるスペースを対象とする。デフォルトで視覚化を有効にする。'wdired-change-to-wdired-mode)ファイル名をそのまま変更できるのは便利です。ファイル名が重複していたらディレクトリ名を追加する。見直したら1年前の設定には抜けていたので追記しました。ファイルの先頭に#!...があるファイルを保存すると実行権をつけます。M-uやM-lだけで十分なら必要ないでしょうが、たまに使いたくなるときがあるのです。リージョンの大文字小文字変換を有効にする。nil)関数名ウィンドウの上部に現在の関数名を表示します。残念ながら大きい関数を編集しなければいけなくなったときに、今どこにいるかがわかりやすくなって便利です。1)Emacsサーバーほとんどemacsclientは使いませんが、いつでもつながるようにはしています。emacsclientで接続できるようにする。2011-06-14(server-start)追加の設定をロード最後にconfig/以下に置いてある設定ファイルを読み込みます。~/.emacs.d/config/local.elがあればそれも読み込みます。local.elはリポジトリに入っていないファイルです。このおすすめ設定を使う場合はlocal.elを自作してそこでカスタマイズしてください。標準Elispの設定config/builtins.elには標準Elisp(Emacsに付属しているElisp)の設定を記述します。バージョン管理システムdiredで"V"を入力するとそのディレクトリで使っているバージョン管理システム用のモードを起動します。1年前のものより賢く検出するようになっています。directoryの中にbase-names内のパスが含まれていたらその絶対パスを返す。含まれていなかったらdirectoryの親のディレクトリを再帰的に探す。base-names)))))スペルチェック自動でスペルチェックを実行します。スペルミスの単語は色が変わるのですぐに気づけます。"american")text-modeテキスト編集用のモード共通の設定です。1)))cc-modeC言語と同じような構文のプログラミング言語用の設定です。1)))emacs-lisp-modeElispを編集するときの設定です。nil)))追加の設定をロード最後に~/.emacs.d/config/buitins/local.elがあればそれもそれも読み込みます。local.elはリポジトリに入っていないファイルです。このおすすめ設定を使う場合はlocal.elを自作してそこでカスタマイズしてください。非標準Elispの設定el-getパッケージ管理ステムとして複数のソースからパッケージをインストールできるel-getを使います。el-getがない場合は自動でインストールします。"~/.emacs.d/config/el-get/local-recipes")レシピは~/.emacs.d/config/el-get/recipies/に置いています。レシピを追加したい場合は~/.emacs.d/config/el-get/local-recipies/ディレクトリを作ってその下に*.rcpというファイルを作ってください。grep結果をインラインで編集grepの結果を直接編集できるようになります。C-cでも編集結果を反映できるようにしています。自動で補完候補をだしてくれて便利です。補完候補をC-n/C-pでも選択できるようにしています。'ac-previous)))Anythingいろいろ便利に使えるらしいAnythingですが、iswitchb-modeとyank-popの代わりにだけ使っています。imenuの代わりにも使ってみようとしています。インストールされていたら有効にする。Ruby編集用モードEmacsに添付されているruby-modeは古いのでRubyのリポジトリに入っているものを使います。C-eでendを挿入することができなかったりします。Rabbitスライド編集用モードRabbitのスライドを編集するためのモードです。C-tで近くにあるrun-test.shやrun-test.rbという名前のファイルを実行するツールです。'(run-test))追加の設定をロード最後に~/.emacs.d/config/packages/local.elがあればそれもそれも読み込みます。local.elはリポジトリに入っていないファイルです。このおすすめ設定を使う場合はlocal.elを自作してそこでカスタマイズしてください。(error))まとめEmacs実践入門と1年経ったおすすめのEmacsの設定を紹介しました。ここで紹介した内容はGitHubに置いておいたので、興味がある人は試してみてください。使い方はREADMEを参照してください。ここで紹介した内容が難しい場合はEmacs実践入門を読んでみるとよいかもしれません。https://amazon.co.jp/dp/978477415002460ページの注2。フリーソフトウェア開発での開発の仕方をベースに、成果や知識を公開し共有しながら業務に携われます。クリアコードのYouTubeチャンネルです。メンバーの登壇動画や、開発プロダクトに関する動画を公開しています。4.0とGFDLのデュアルライセンスで自由に利用できます。クリアコードはプログラミングが楽しいソフトウェア開発者を1名募集しています。クリアコードは「クリアコードをいい感じにする人」を1名募集しています。クリアコードはフリーソフトウェア開発で培った技術力を提供しています。Thunderbird)とRubyとGroonga(全文検索)に関連した開発を得意としています。株式会社クリアコード。