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