181号Information

(!)
自宅設置サーバーのHDDがトんじゃったので,現在復旧作業中です...
Diary>35[38]39
CONTENTS

じゆうちょう

38 emacsでのother-window   2010-08-22 19:28:20

画面の移動が簡単になるように (other-window 1)をC-tに,(other-window -1)をM-tに割り当ててるのですが, dired-modeだとC-tはimage-diredのプレフィックスになっていて衝突してしまします. 特に,画面移動でC-tを連打しているとdired-modeのキーマップでは C-t C-tにサムネイル作成が割り当てられていて,それが実行されてしまします.

そこで,マークされたファイルの中に(あるいは現在行のファイルに) 画像ファイルがあればサムネイル生成を,そうでなければ(other-window 1)を 実行するようにします. 状況に応じて動作が変わるようにキーアサインすると資源節約になるはず. C-tから急にC-t C-tになるのはどーかとも思うけど.まあ自分用だし... やぼったくてごめんなさい.

 (add-hook 'dired-load-hook
           (lambda ()
             ;; dired-xを有効にする
             (load "dired-x")
             ;; C-tに関するキーバインド
             (define-key dired-mode-map "\C-t\C-t"
             '(lambda ()
               (interactive)
               (if (not
                    (catch 'non-image-file-found
                      (dired-map-over-marks
                       (if (not (string-match
                                 (image-file-name-regexp)
                                 (dired-get-filename)))
                           (throw 'non-image-file-found nil)) nil)))
                   ;; 画像でないファイルが見つかった
                   (other-window 1)
                 ;; 全て画像ファイルだった
                 (image-dired-dired-insert-marked-thumbs)
                 )
               )
             )
             ))

こーすると,画像ファイル以外の場所にマークがあると C-t C-tで次のウィンドウへ行くようになります.

TODOとしては,diredのヘッダ行とかでC-t C-tするとNo file on this lineって 言われる.でもother-windowできるからいいや. あと,CUIでもうごきます.

夏コミで本買ってくれた方ありがとうございました! 冬はemacs本だしたいなあ.

 
Diary>35[38]39