| @@ -572,6 +572,8 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
| ;;requireが必要なelispおよびhook | |||
| (require 'simple nil t) | |||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
| ;; share clipboard with x | |||
| (when (or window-system | |||
| @@ -1037,7 +1039,7 @@ if arg is omitted use value of `buffer-list'." | |||
| (message "One files must be marked!")))) | |||
| (require 'dired-aux) ;; needed to use dired-dwim-target-directory | |||
| (defun my-dired-do-compress-or-uncompress () | |||
| (defun my-dired-do-pack-or-unpack () | |||
| "" | |||
| (interactive) | |||
| (let* ((infiles (dired-get-marked-files t)) | |||
| @@ -1046,21 +1048,21 @@ if arg is omitted use value of `buffer-list'." | |||
| (car infiles)))) | |||
| (if (and onefile | |||
| (assoc (file-name-extension onefile) | |||
| my-compress-program-alist)) | |||
| (when (y-or-n-p (format "uncompress %s? " onefile)) | |||
| (my-uncompress onefile) | |||
| my-pack-program-alist)) | |||
| (when (y-or-n-p (format "unpack %s? " onefile)) | |||
| (my-unpack onefile) | |||
| (revert-buffer)) | |||
| (let* ((dir-default (dired-dwim-target-directory)) | |||
| (archive-default (my-compress-file-extension (file-name-nondirectory (car infiles)))) | |||
| (archive-default (my-pack-file-extension (file-name-nondirectory (car infiles)))) | |||
| (archive (if (interactive-p) | |||
| (read-file-name "Output file to compress : " ;; (format "Output file to compress (default for %s) : " | |||
| (read-file-name "Output file to pack : " ;; (format "Output file to pack (default for %s) : " | |||
| ;; archive-default) | |||
| dir-default | |||
| nil ;; archive-default | |||
| nil | |||
| archive-default) | |||
| (concat dir-default archive-default)))) | |||
| (apply 'my-compress | |||
| (apply 'my-pack | |||
| archive | |||
| infiles) | |||
| (revert-buffer))) | |||
| @@ -1074,57 +1076,57 @@ otherwise, return extension normally." | |||
| (file-name-extension filename)) | |||
| (file-name-extension filename))) | |||
| (defun my-compress-file-extension (filename) | |||
| "if FILENAME has extension and it can be used for compress, return FILENAME. | |||
| otherwise, return FILENAME with `my-compress-default-extension'" | |||
| (defun my-pack-file-extension (filename) | |||
| "if FILENAME has extension and it can be used for pack, return FILENAME. | |||
| otherwise, return FILENAME with `my-pack-default-extension'" | |||
| (if (assoc (file-name-extension filename) | |||
| my-compress-program-alist) | |||
| my-pack-program-alist) | |||
| filename | |||
| (concat filename "." my-compress-default-extension))) | |||
| (concat filename "." my-pack-default-extension))) | |||
| (defvar my-7z-program | |||
| (or (executable-find "7z") | |||
| (executable-find "7za") | |||
| (executable-find "7zr"))) | |||
| (defvar my-compress-default-extension | |||
| (defvar my-pack-default-extension | |||
| "7z") | |||
| (defvar my-compress-program-alist | |||
| (defvar my-pack-program-alist | |||
| `(("7z" ,my-7z-program "a" ,my-7z-program "x") | |||
| ("tar" "tar" "cvf" "tar" "xvf") | |||
| ("tgz" "tar" "czf" "tar" "xzf") | |||
| ("txz" "tar" "cJf" "tar" "xJf") | |||
| ("zip" "zip" "-r" "unzip" nil))) | |||
| (defun my-uncompress (archive) | |||
| (defun my-unpack (archive) | |||
| "" | |||
| (interactive "fArchive to extract: ") | |||
| (let* ((earchive (expand-file-name archive)) | |||
| (ext (file-name-extension earchive)) | |||
| (lst (assoc ext | |||
| my-compress-program-alist)) | |||
| my-pack-program-alist)) | |||
| (com (nth 3 lst)) | |||
| (op (nth 4 lst)) | |||
| (args (if op | |||
| (list op earchive) | |||
| (list earchive)))) | |||
| (message "uncompressing %s..." archive) | |||
| (message "unpacking %s..." archive) | |||
| (apply 'call-process | |||
| com | |||
| nil | |||
| (my-pop-to-buffer-erase-noselect "*compressing output*") | |||
| (my-pop-to-buffer-erase-noselect "*packing output*") | |||
| t | |||
| args) | |||
| (message "uncompressing %s...done." archive))) | |||
| (message "unpacking %s...done." archive))) | |||
| (defun my-compress (archive &rest files) | |||
| "if archive have extension for compress, use it. | |||
| otherwise, use `my-compress-default-extension'. for compress." | |||
| (let* ((archive-ext (my-compress-file-extension (expand-file-name archive))) | |||
| (defun my-pack (archive &rest files) | |||
| "if archive have extension for pack, use it. | |||
| otherwise, use `my-pack-default-extension'. for pack." | |||
| (let* ((archive-ext (my-pack-file-extension (expand-file-name archive))) | |||
| (ext (file-name-extension archive-ext)) | |||
| (lst (assoc ext | |||
| my-compress-program-alist)) | |||
| my-pack-program-alist)) | |||
| (com (nth 1 lst)) | |||
| (op (nth 2 lst)) | |||
| (args (if op | |||
| @@ -1135,14 +1137,14 @@ otherwise, use `my-compress-default-extension'. for compress." | |||
| (apply 'list | |||
| archive-ext | |||
| files)))) | |||
| (message "compressing to %s..." archive) | |||
| (message "packing to %s..." archive) | |||
| (apply 'call-process | |||
| com | |||
| nil | |||
| (my-pop-to-buffer-erase-noselect "*compressing output*") | |||
| (my-pop-to-buffer-erase-noselect "*packing output*") | |||
| t | |||
| args) | |||
| (message "compressing to %s...done." archive))) | |||
| (message "packing to %s...done." archive))) | |||
| (defun my-pop-to-buffer-erase-noselect (buffer-or-name) | |||
| "pop up buffer using `display-buffer' and return that buffer." | |||
| @@ -1218,7 +1220,7 @@ otherwise, use `my-compress-default-extension'. for compress." | |||
| (my-dired-find-file "..")) | |||
| (defun my-dired-find-file (&optional filename) | |||
| "" | |||
| "if the file to open is a directory, kill current buffer after opening that file." | |||
| (interactive) | |||
| (let ((f (expand-file-name (or filename | |||
| (dired-get-filename)))) | |||
| @@ -1268,11 +1270,12 @@ otherwise, use `my-compress-default-extension'. for compress." | |||
| (define-key dired-mode-map "!" 'shell-command) | |||
| (define-key dired-mode-map "&" 'async-shell-command) | |||
| (define-key dired-mode-map "X" 'dired-do-async-shell-command) | |||
| (define-key dired-mode-map "=" 'my-dired-diff) | |||
| (define-key dired-mode-map "B" 'gtkbm-add-current-dir) | |||
| (define-key dired-mode-map "b" 'gtkbm) | |||
| (define-key dired-mode-map "@" (lambda () (interactive) (my-x-open "."))) | |||
| (define-key dired-mode-map (kbd "TAB") 'other-window) | |||
| (define-key dired-mode-map "Z" 'my-dired-do-compress-or-uncompress) | |||
| (define-key dired-mode-map "P" 'my-dired-do-pack-or-unpack) | |||
| (define-key dired-mode-map "a" 'my-dired-display-all-mode) | |||
| (define-key dired-mode-map "h" 'my-dired-display-all-mode) | |||
| (substitute-key-definition 'dired-advertised-find-file 'my-dired-find-file dired-mode-map) | |||
| @@ -1381,7 +1384,7 @@ Optional prefix ARG says how many lines to unflag; default is one line." | |||
| (defun eshell/git (&rest args) | |||
| "" | |||
| nil) | |||
| (eshell-parse-arguments (point-at-bol) (point-at-eol))) | |||
| (defun eshell/o (&optional file) | |||
| (my-x-open (or file "."))) | |||