表示幅を広げる --- C-1 〜 C-4
表示幅を狭める --- C-M-1 〜 C-M-4
ファイラから C-c c で接続ダイヤログを、 C-c d で切断ダイヤログを表示する。
;; ネットワークドライブに接続 (define-key filer-keymap '(#\C-c #\c) 'network-connect-dialog) ;; ネットワークドライブの切断 (define-key filer-keymap '(#\C-c #\d) 'network-disconnect-dialog)
[xyzzy:01039](須田さんのぺーじ) より。Win98 で MO を使うと、ファイル名がみんな大文字になったりして嫌になる...。
(defun filer-downcase-filename () (let ((files (filer-get-mark-files))) (when (and files (yes-or-no-p "小文字にしまっせ")) (filer-subscribe-to-reload (filer-get-directory)) (mapc #'(lambda (x) (rename-file x (string-downcase x))) files) (filer-demand-reload) (filer-goto-file (file-namestring (car files)))) t)) (define-key filer-keymap #\M-s 'filer-downcase-filename)
[xyzzy:03902](Toy さんのぺーじ) を参考に。株分けしてみた。
;; ファイラでパス付ファイル名(/)を kill-ring へコピー (C-w) ;; by Tetsuya Kamei [xyzzy:03902] (define-key filer-keymap #\C-w #'(lambda () (interactive) (let ((filename (filer-get-current-file))) (setq *clipboard-newer-than-kill-ring-p* nil *kill-ring-newer-than-clipboard-p* t) (ed::kill-new filename)))) ;; ファイラでパス付ファイル名(\\)を kill-ring へコピー (C-q) (define-key filer-keymap #\C-q #'(lambda () (interactive) (let ((filename (filer-get-current-file))) (setq *clipboard-newer-than-kill-ring-p* nil *kill-ring-newer-than-clipboard-p* t) (ed::kill-new (map-slash-to-backslash filename))))) ;; ファイラでファイル名(パス無し)を kill-ring へコピー (C-e) (define-key filer-keymap #\C-e #'(lambda () (interactive) (let ((filename (filer-get-current-file))) (setq *clipboard-newer-than-kill-ring-p* nil *kill-ring-newer-than-clipboard-p* t) (ed::kill-new (file-namestring filename)))))
C-Insert でファイル名(ディレクトリ名)コピーメニューが表示される。
(defun filer-get-filenamestring (type) (interactive) (let ((n (filer-get-current-file)) str) (cond ((= type 1) (setq str (if (file-directory-p n) (car (reverse (pathname-directory (concat n "x")))) (file-namestring n)))) ((= type 2) (setq str n)) ((= type 3) (setq str (map-slash-to-backslash n))) ((= type 4) (setq str (concat "file:///" n)))) (copy-to-clipboard str))) (defvar *get-filenamestring-menu* nil) (define-key filer-keymap #\C-Insert #'(lambda () (interactive) (unless *get-filenamestring-menu* (setq *get-filenamestring-menu* (define-popup-menu (:item nil "ファイル名のみコピー(&F)" #'(lambda () (interactive) (filer-get-filenamestring 1))) (:item nil "フルパス(/)でコピー(&S)" #'(lambda () (interactive) (filer-get-filenamestring 2))) (:item nil "フルパス(\\)でコピー(&E)" #'(lambda () (interactive) (filer-get-filenamestring 3))) (:item nil "URL表記でコピー(&U)" #'(lambda () (interactive) (filer-get-filenamestring 4))) ))) (track-popup-menu *get-filenamestring-menu*)))
xyzzy Part7 787 より。M-Home に割り当ててみた。
(defun filer-directory-select () (filer-mark-all nil) (filer-toggle-mark-files)) (define-key filer-keymap #\M-Home 'filer-directory-select)
ノートタイプなどの解像度の低いディスプレイでは、1 行でも多く表示したいので、 ファイラ画面下のガイドテキストを非表示にしてみた。 しかし、たまにしか使用しないキーは覚えられないので、ポップアップ表示するようにしておいた。
とりあえず、ガイドテキストを表示しない設定。
(setq *filer-guide-text* nil)
M-h で、ファイラのガイドテキストをポップアップ表示する。 (半角カナです。ゴメンナサイ。) 大久保さんの教えどおり、タブで区切っている。
(setq *popup-filer-guide-text* (concat "A:属性 B:バイトコンパイル C:コピー D:削除 E:解凍\n" "F:検索 G:ファイル名検索 J:DIR移動 K:mkdir L:ドライブ\n" "M:移動 N:ファイル名 O:圧縮 P:DIR?? Q:終了\n" "R:名前変更 S:DIR?? T:ショートカット U:DIRサイズ V:リスト\n" "W:閲覧 X:実行 Y:ショートカット Z:プロパティ\n" "\n" "*:load .:マスク /:マーク <:先頭 >:末尾\n" "@:別名コピー \:ルート =:比較 ^:イジェクト ]:送る\n" "\n" "C-h:上ディレクトリ C-r:後isearch C-s:前isearch C-u:ディレクトリサイズ\n" "C-1:ファイル広 C-2:サイズ広 C-3:日時広 C-4:属性広\n" "C-M-1:ファイル狭 C-M-2:サイズ狭 C-M-3:日時狭 C-M-4:属性狭\n" "\n" "M-g:grep M-r:gresreg M-v:リードオンリー\n" "\n" "F3:実行 F5:マークトグル F6:ソート S-F10:ポップアップメニュー\n" "\n" "TAB:移動 SPC:マーク\n" "Home:トグル(ファイル) S-Home:クリア C-Home:トグル(含Dir) S-C-Home:全ファイルマーク\n" "End:リロード\n" "\n" )) (define-key filer-keymap #\M-h #'(lambda () (interactive) (message-box *popup-filer-guide-text*)))
あと、カスタマイズしているあたり。
(setq *popup-filer-guide-text* (concat *popup-filer-guide-text* "\n" "M-f:diff M-h:ガイド M-s:小文字 M-Home:トグル(Dir)\n" "\n" "[ファイル名コピー]\n" "M-q:\\区切り M-w:/区切り M-e:パス無" ))
xyzzy使い方がわからぬ人たちが励ましあうスレ 417 より。 X で実行。
(defun my-filer-shell-execute () (ed::filer-shell-execute) (ed::filer-cancel)) (define-key filer-keymap #\X 'my-filer-shell-execute)
普通に閉じない「ファイルの実行」と併用したい場合は、別のキーにバインドしてもいいかも。 → M-x
(define-key filer-keymap #\M-x 'my-filer-shell-execute)
須田さんのぺーじを参考に。 現在開いているファイルのディレクトリを見たいときに使っている。
(defun open-single-filer () (interactive) (toggle-ime nil) (multiple-value-bind (files result) (filer nil t nil nil) (when result (dolist (f files t) (unless (file-directory-p f) (find-file f) (add-history f '*minibuffer-file-name-history*)))))) (define-key ctl-x-map #\d 'open-single-filer)
一画面ファイラで開いているディレクトリを,二画面ファイラで開く。M-2 に割り当てている。
(defun filer-open-dual-window () (interactive) (unless (filer-dual-window-p) (let ((*filer-primary-directory* (filer-get-directory)) (*filer-secondary-directory* (filer-get-directory))) (filer-cancel) (open-filer)))) (define-key filer-keymap #\M-2 'filer-open-dual-window)
モーダルファイラから filer-view-file を実行すると, ファイラが閉じてくれないみたいなので閉じるようにしたつもり。 何か良い方法があるのだろうか。それともこういうものなのだろうか。 とりあえず C-RET に割り当てて使っている。
(defun my-filer-view-file () (let ((files (or (filer-get-mark-files t) (let ((f (filer-get-current-file))) (and f (list f)))))) (when files (mapc #'(lambda (file) (unless (file-directory-p file) (find-file file) (setq buffer-read-only t) (add-history file '*minibuffer-file-name-history*))) files) (if (filer-modal-p) (filer-cancel) (si:*activate-toplevel)) ))) (define-key filer-keymap #\LFD 'my-filer-view-file)
ネットワークコンピュータの共有フォルダがダイアログから選択できる。 C-c J に割り当ててみた。 [xyzzy:06022](KAMEI Tetsuya さん)より。
(defun filer-jump-share-directory () (multiple-value-bind (r d) (dialog-box '(dialog 0 0 187 157 (:caption "共有フォルダにかっ飛ぶかも") (:font 9 "MS Pゴシック") (:control (:listbox list nil #x50a10103 7 7 119 143) (:button IDOK "OK" #x50010001 130 7 50 14) (:button IDCANCEL "きゃんせる" #x50010000 130 24 50 14))) (list (cons 'list (long-operation (mapcan #'(lambda (s) (mapcar #'(lambda (r) (concat "//" s "/" r)) (ignore-errors (list-server-resources s)))) (list-servers))))) nil) (and r (setq d (cdr (assoc 'list d))) (filer-chdir d)))) (define-key filer-keymap '(#\C-c #\J) 'filer-jump-share-directory)