Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2005-07-31

EmacsにLispマシン的な何かを求める

03:17 | EmacsにLispマシン的な何かを求める - わだばLisperになる を含むブックマーク はてなブックマーク - EmacsにLispマシン的な何かを求める - わだばLisperになる

リスプマシンみたいな感じの環境を実現してみることのその2ですが、今回はエディタというかバッファの使い勝手をそれっぽくしてみることに挑戦してみようと思います。それで、どういう感じにするかということなのですが、TI ExplorerやSymbolicsでは、Systemキーもしくは、Selectキーというのがあり、これで画面内のツールを切り換えるということをするみたいです。System-Eでエディタ、System-Mで、ーラー、などなど。加えて、Ctrlを押すと複数のツールを使用していた場合、同じツールの中でぐるぐるとフォーカスが回る仕組になっているみたいです。なんとなく便利そうなので、これをEMACS上で真似してみることにしました。

まず、Systemキーなのですが、当然ながら、普通のPCにもMacにもはそんなキーはないので、適当にキーを割り振る必要があります。EMACSでは、修飾キーとして、Control、Meta、Super、Hyperの各キーが使用できます。本当は、Superも、HyperもSystemとは別個に使用したいのですが、とりあえずは、SystemキーをSuperキーで代用させてみたいと思います。

もとはどんな感じのキーボードなのかといえば、こんな感じです。

それで、Superキーはどこに割り振るかというと、TABとリターンは、Control+I、Control+Mで入力してるので、それらのキーに割り振ってもあまり普段の使用感に支障はないということで、TABと、リターンをSuperキーとすることにしました。

割り振りは、

(define-key function-key-map [(tab)] 'event-apply-super-modifier)
(define-key function-key-map [(return)] 'event-apply-super-modifier)

という感じです。

で、とりあえず、System+Mでメーラーが呼出せれば良い訳なので適当に書いてみました。

志は低く、メーラーを呼びだして、その画面にフォーカスすれば完成ということにします。

;;; おてがみ読み書き
(defun env-mail()
  (interactive)
  (or (functionp 'wl)
      (progn
	(require 'mime-setup)
	(autoload 'wl "wl" "Wanderlust" t)
	(autoload 'wl-draft "wl-draft" "Write-draft-with-Wanderlust." t)
	(wl)))
  (elscreen-switch-to-buffer "Folder")
;  (switch-to-buffer "Folder")
  'env-mail)

(define-key global-map [?\s-m] 'env-mail)

メーラーには、Wanderlustを使用していて、GNU Screenみたいに画面を切り換える、Elscreenというツールも使用しているので、それらの機能を合せて呼出して完了です。

これで、何をしてるときでも、System-Mでメーラーを呼出せる環境の真似ができた訳ですが、案外これだけでも便利です。

次はエディタで同じことをやってみたり、各種環境を作成してみたいと思います。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20050731