[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:04639] Emacs 風 switch-to-buffer



  はじめまして、つじといいます。最近 xyzzyを知り、いろいろと
カスタマイズをやっています。もともとLinuxでMule 2.3を使っていたので
なるべくEmacsに近づけようという方向でやってます。

  Emacsのバッファ切り替え(C-x b)はデフォルトではなにも入力されていなくて
そのままリターンを押せば、デフォルトのバッファ(other-buffer)が選択され
ます。私はバッファの名前をあまり覚えないほうなので、とりあえず
スペースキーを押してバッファの一覧を表示させてから入力しています。
xyzzyオリジナルのswitch-to-bufferだとすでにデフォルトのバッファが
入力されている状態になっているので一度、デフォルトを消してからでないと
バッファ一覧を表示できません。そこで下の関数を作ってみました。

;;; emacs風バッファ切り替え
(defun switch-to-buffer-emacs ()
  (interactive)
  (let* ((default (buffer-name (other-buffer)))
	 (prompt (format nil "Switch to buffer: (default ~A) " default))
	 (buffer (mapcar (function buffer-name) (buffer-list)))
	 (name (completing-read prompt buffer)))
	(if (equal name "")
		(switch-to-buffer default)
	  (switch-to-buffer name))))

(global-set-key '(#\C-x #\b) 'switch-to-buffer-emacs)

とりあえず動いていますが、Lispはあまり詳しくないので
こんな風にしたらいいとかありましたら、よろしくお願いします。

-- 
(* ------------------------------------------- *)
(*  Yuhki Tsuji  mailto:yuhki@xxxxxxxxxxxxxxx  *)
(* ------------------------------------------- *)

Index Home