Emacsには標準で dired というファイラーが付属している。起動方法は C-x d でディレクトリを指定する。 この dired はUNIX系OSで使うには便利だが、Windowsの場合いろいろ不備があるので、エクスプローラーで作業した方が効率良い場合もあるので、用途によって使い分ける。 特に、wdiredを使った、ディレクトリの一括操作とgrep&findは便利すぎるので使い方を覚えておくと良い。
;; --------------------------------------------- ;; dired 関連 ;; --------------------------------------------- ; http://uenox.ld.infoseek.co.jp/elisp/uenox-dired.el ; Dired に以下の3つの機能が追加されます。(キーマップはこのファイルの ; 最後の方を書き換えることで変更できます。) ; * C-j ; 現在の行のファイルをWindowsに関連付けられたアプリケーションを使っ ; て開きます。(わざわざエクスプローラーを開かなくて良くなります。) ; * w ; 現在の行のファイル名をUNIX形式にてコピーします。 ; * W ; 現在の行のファイル名をDOS形式にてコピーします。 (load "uenox-dired") ; ディレクトリに対して再帰的なコピー/削除を行う (setq dired-recursive-copies 'always) (setq dired-recursive-deletes 'always) ; lisp のみで find-dired を実行する ; http://groups.google.com/group/gnu.emacs.sources/msg/80bf4b334396c098?pli=1 ; よりソースをコピーして、findr.el として保存する。 ; http://www.bookshelf.jp/elc/find-dired-lisp.el ; M-x find-dired-lisp ファイル名に対して検索実行 ; M-x find-grep-dired-lisp ファイル内容に対して検索実行 (autoload 'find-dired-lisp "find-dired-lisp" "findr" t nil) (autoload 'find-grep-dired-lisp "find-dired-lisp" "findr" t nil) ; ディレクトリを先に表示する (setq ls-lisp-dirs-first t) ; ファイルの一括操作 ; http://www.emacswiki.org/elisp/wdired.el ; dired で r を押して編集開始。 ; C-s で確定、C-c C-k で破棄 ; l:ファイル名を小文字にする ; c:ファイル名の一文字を大文字にする ; u:ファイル名を大文字にする (require 'wdired) (define-key dired-mode-map "r" 'wdired-change-to-wdired-mode) ; マークつきのファイルを印刷(白黒) (defun dired-ps-print-files () (interactive) (let ((files-to-print (dired-get-marked-files))) (while (setq file (car files-to-print)) (setq files-to-print (cdr files-to-print)) (find-file file) (ps-print-buffer) (kill-buffer nil)))) ; マークつきのファイルを印刷(カラー) (defun dired-ps-print-files-with-face () (interactive) (let ((files-to-print (dired-get-marked-files))) (while (setq file (car files-to-print)) (setq files-to-print (cdr files-to-print)) (find-file file) (ps-print-buffer-with-faces) (kill-buffer nil)))) ; SPC キーでマークをトグルする (define-key dired-mode-map " " 'dired-toggle-mark) (defun dired-toggle-mark (arg) "Toggle the current (or next ARG) files." ;; S.Namba Sat Aug 10 12:20:36 1996 (interactive "P") (let ((dired-marker-char (if (save-excursion (beginning-of-line) (looking-at " ")) dired-marker-char ?\040))) (dired-mark arg) (dired-previous-line 1))) ; マークしたファイルを C-t C-z で zip 圧縮 ; 日本語ファイルは化けるので補助的に使用すること ; 参考 http://d.hatena.ne.jp/khiker/20070207/emacs_dired (defun dired-marked-files-zipping (arg) "zipping files that marked on dired" (interactive "P") (let ((files (dired-get-marked-files t current-prefix-arg)) (output-filename (let ((string (read-string "OUTPUT FILENAME: "))) ;; 拡張子を入力してなかったら, それを付加する. (if (or (string-match "\\(\\.zip\\)$" string) (string= "" string)) string (concat string ".zip"))))) (or (if (string= "" output-filename) ;; 出力ファイル名が入力されていなかったらエラーとする. (progn (message "ERROR: Output filename is empty.") t)) (if (string-match "/" output-filename) ;; UNIX では, ファイル名に / は使えない. (progn (message "ERROR: The / cannot be used for the filename with UNIX.") t)) (if (member output-filename (directory-files default-directory)) ;; 出力ファイル名と同じ名前のファイルが, 既にあった場合, 上書きするか問い合わせる. (not (y-or-n-p (concat "file " output-filename " exists. overwrite the file ?")))) (if arg ;; 実際に圧縮をする. (dired-do-shell-command (concat "zip -r " output-filename " *") nil files) (dired-do-shell-command (concat "zip -r " output-filename " *") nil files))))) (define-key dired-mode-map "\C-c\C-z" 'dired-marked-files-zipping) ; windows ショートカットを有効にする ; http://www.emacswiki.org/emacs/w32-symlinks.el ; ntemacs だと使えないぽい ;(setq w32-symlinks-handle-shortcuts t) ;(require 'w32-symlinks)
GNU Emacs Pocket Reference[洋書] 価格:1,260円(税込、送料別) |