画面の移動が簡単になるように
(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本だしたいなあ.
|