Emacs24 for Windows (NTEmacs24)の設定

Emacs24 for Windowsの設定をメモするよ。


Emacs24 が出たんだね。Emacs23から、どんな変更があったのさ?


Emacs24って、実際のところ、Emacs23とほとんど違いがないんだよね。設定もほとんど同じまま使えるし。Emacs23まではバージョンごとにかなりの違いがあったものだけど‥‥。


オレの場合、Emacs24で


Emacsで「いつもの」ファイルを開くために、ブックマーク機能を使う

  • C-x r l でリスト表示してEnterで開く。普段はこれだけ使えばいい
  • リストにファイル追加するには C-x r m ←これはたまにしか使わない

Emacsを「普段使いのテキストエディタ」にした場合の欠点

  • Windows7のタスクバーで「タスクバーに表示する(pin)」すると、起動前のアイコンと起動後のアイコンが一致せず、アイコンが複数になる。

以下を読んでも解決法はないようだ。まあ複数でもいいか‥‥。
http://superuser.com/questions/259146/why-latest-emacs-version-dont-support-windows-7-taskbar



Windowsの[右クリック-送る]で、既に起動しているEmacsに、ファイルを読み込ませる

  • 既にEmacsが起動している場合には、そのEmacsの新しいウィンドウ(タブ)に読み込む
  • Emacsが起動してない場合には、Emacsを起動して読み込む


Windows7の場合、C:\Users\star\AppData\Roaming\Microsoft\Windows\SendTo に emacsclientw.exe のショートカットアイコンを置く。そのアイコンの「プロパティ」を開いて、「リンク先」を[C:\home\bin\gnupack_devel-10.00\app\emacs\emacs\bin\emacsclientw.exe --server-file=C:\home\bin\gnupack_devel-10.00\home\.emacs.d\server\server --alternate-editor=C:\home\bin\gnupack_devel-10.00\emacs.exe] とする。
f:id:itouhiro:20120910125424p:plain


.emacs.d/init.elに以下を記入。

;; emacs-client
(require 'server)
(unless (server-running-p)
  (server-start))
;; stop asking 'Buffer .. still has clients; kill it?'
(remove-hook
 'kill-buffer-query-functions 
 'server-kill-buffer-query-function)

Firefoxアドオン「It's All Text!」のエディタとして使う

「It's All Text!」とはWebページのtextarea編集にテキストエディタを使う、Firefox拡張機能

上記の記事「Windowsの[右クリック-送る]で、既に起動しているEmacs‥‥」の (server-start)設定してあるときに
C:\home\bin\gnupack_basic-8.00\its_All_Text_emacs.bat というテキストファイルを作成して、中身は

@echo off
C:\home\bin\gnupack_basic-8.00\app\emacs\emacs\bin\emacsclientw.exe --server-file=C:\home\bin\gnupack_basic-8.00\home\.emacs.d\server\server --alternate-editor=C:\home\bin\gnupack_basic-8.00\emacs.exe --no-wait "%1"

これで「It's All Text!」の[設定 - エディタ]に
C:\home\bin\gnupack_basic-8.00\its_All_Text_emacs.bat
と指定すればよい。

http://d.hatena.ne.jp/m-hiyama/20101019/1287460446 を参考にした。

これは使いやすいなあ。

一時ファイルも保存されるので安心して使える。


GoogleChromeアドオン「Edit With Emacs」のエディタとして使う


これは導入したところ、欠点があると思ったんだ。だから現在は使ってない。


欠点?


C-xC-cすると「入力内容が保存されていません。保存しますか?」と問うこともせずに、入力した内容すべて消えてしまう‥‥これはテキストエディタがやってはいけない挙動だと思うんだ。


ああ‥‥作業内容が消えてしまうのか。ソフトが異常終了したみたいなもんだね。


Emacsに入力した文字をWebブラウザに送るにはC-cC-cするのだが、まちがえてC-xC-cすると30分入力した文章があとかたもなく消えた。この2つのキー操作似すぎなんだよな、隣のキーだし。


まあ、それでも導入方法をメモしておく。


http://blog.kechako.com/entry/2011/12/02/105752 を参考に導入した。

http://d.hatena.ne.jp/noromanba/20100530/1275254399 も読んだが、Emacs使うときはローカルHTTPサーバー立てなくてもよい。上記の(server-start)設定してあればいい。

あと、必要な2つ。

1) edit-server.pl をEmacsのload-pathに置く。edit-server.plはEdit with Emacs拡張機能の「オプション」画面でダウンロードできる。

2) Emacs設定に以下を記述。

;; 'Edit with Emacs' for Google Chrome
(require 'edit-server)
(edit-server-start)
;(setq edit-server-new-frame nil) ;;新しくフレームを開きたくない


textareaで右クリックして[Edit with Emacs]でEmacsウィンドウ(Emacs用語ではFrame)が新しく起動する。

ちなみにEmacsが起動していないと[Edit with Emacs]選んでも何も起こらない(Emacsを立ち上げてはくれない)。


C-xC-sがなぜか効かない。だから一時ファイルに保存されているという安心感が得られない。

C-xC-cすると「入力内容が保存されていません」と警告もせずに、入力した内容すべて消えてしまった‥‥これは怖いかも。

C-cC-cすると、Emacsで入力した文字はtextareaに入るが、Emacsウィンドウは「消えてしまう」。一時ファイルも残ってない。入力した文字をブラウザ以外に残すためには、C-cC-cする前にテキスト全コピーしておくしかないのかな。


これ、textareaの文字をコピーしてEmacsにペーストして、という手間を少しだけ省けるだけの気がする。それでC-xC-cで文章消失の不安が増大だから確かに導入の意味は低いかも


それでも短文書くなら便利。長文書くのは不安だな。
「It's All Text!」と比べるとクセはあるけど、それでもEmacsで文章編集できるのは便利。