| @@ -14,7 +14,7 @@ | |||||
| (progn ; hook run when directory changed | (progn ; hook run when directory changed | ||||
| (defvar buffer-file-changed-function nil "Hook run when buffer file changed. | (defvar buffer-file-changed-function nil "Hook run when buffer file changed. | ||||
| Each function is called with two args, the file before changing and after changing.") | |||||
| Each function is called with two args, the filename before changing and after changing.") | |||||
| (declare-function run-buffer-file-change-function "emacs.el") | (declare-function run-buffer-file-change-function "emacs.el") | ||||
| (add-hook 'post-command-hook | (add-hook 'post-command-hook | ||||
| 'run-buffer-file-changed-function) | 'run-buffer-file-changed-function) | ||||
| @@ -35,6 +35,32 @@ Each function is called with two args, the file before changing and after changi | |||||
| ;; (message "dir changed %s to %s !" pdir cdir))) | ;; (message "dir changed %s to %s !" pdir cdir))) | ||||
| ) | ) | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; download library from web | |||||
| (require 'url) | |||||
| (defun dllib-if-unfound (lib url &optional bite-compile-p force-download-p) | |||||
| "if LIB does not exist, download it from URL and locate it to \"~/emacs.d/lisp/LIB.el\". | |||||
| return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| (let* ((dir (expand-file-name (concat user-emacs-directory "lisp/"))) | |||||
| (lpath (concat dir lib ".el")) | |||||
| (locate-p (locate-library lib))) | |||||
| (if (or force-download-p (not locate-p)) | |||||
| (progn (condition-case nil | |||||
| (progn (message "downloading %s..." url) | |||||
| (url-copy-file url | |||||
| lpath | |||||
| t) | |||||
| (when bite-compile-p | |||||
| (byte-compile-file lpath))) | |||||
| (error (and (file-readable-p lpath) | |||||
| (delete-file lpath)) | |||||
| (message "downloading %s...something wrong happened!" url) | |||||
| nil)) | |||||
| (locate-library lib)) | |||||
| locate-p))) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; start and quit | ;; start and quit | ||||
| @@ -131,12 +157,6 @@ Each function is called with two args, the file before changing and after changi | |||||
| (define-key my-prefix-map (kbd "C-q") 'quoted-insert) | (define-key my-prefix-map (kbd "C-q") 'quoted-insert) | ||||
| (define-key my-prefix-map (kbd "C-z") 'suspend-frame) | (define-key my-prefix-map (kbd "C-z") 'suspend-frame) | ||||
| ;; display | |||||
| (setq redisplay-dont-pause t) | |||||
| (setq visible-bell t) | |||||
| (setq ring-bell-function 'ignore) | |||||
| ;; (comint-show-maximum-output) | ;; (comint-show-maximum-output) | ||||
| ;; kill scratch | ;; kill scratch | ||||
| @@ -148,6 +168,43 @@ Each function is called with two args, the file before changing and after changi | |||||
| (setq mac-option-modifier 'control) | (setq mac-option-modifier 'control) | ||||
| (setq w32-apps-modifier 'meta) | (setq w32-apps-modifier 'meta) | ||||
| ;; display | |||||
| (setq redisplay-dont-pause t) | |||||
| (setq visible-bell t) | |||||
| (setq ring-bell-function 'ignore) | |||||
| (mouse-avoidance-mode 'banish) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; global keys | |||||
| (define-key my-prefix-map (kbd "C-o") 'occur) | |||||
| ;; (define-key my-prefix-map (kbd "C-h") help-map) | |||||
| (global-set-key (kbd "C-\\") help-map) | |||||
| (define-key ctl-x-map (kbd "DEL") help-map) | |||||
| (define-key ctl-x-map (kbd "C-h") help-map) | |||||
| (define-key help-map "a" 'apropos) | |||||
| ;; compose window | |||||
| (global-set-key [?\C--] 'other-window) | |||||
| (global-set-key [?\C-0] 'delete-window) | |||||
| (global-set-key [?\C-1] 'delete-other-windows) | |||||
| (global-set-key [?\C-2] 'split-window-vertically) | |||||
| (global-set-key [?\C-3] 'split-window-horizontally) | |||||
| ;; disable annoying keys | |||||
| (global-set-key [prior] 'ignore) | |||||
| (global-set-key (kbd "<next>") 'ignore) | |||||
| (global-set-key [menu] 'ignore) | |||||
| (global-set-key [down-mouse-1] 'ignore) | |||||
| (global-set-key [down-mouse-2] 'ignore) | |||||
| (global-set-key [down-mouse-3] 'ignore) | |||||
| (global-set-key [mouse-1] 'ignore) | |||||
| (global-set-key [mouse-2] 'ignore) | |||||
| (global-set-key [mouse-3] 'ignore) | |||||
| (global-set-key (kbd "<eisu-toggle>") 'ignore) | |||||
| (global-set-key (kbd "C-<eisu-toggle>") 'ignore) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; mode-line | ;; mode-line | ||||
| @@ -217,7 +274,7 @@ Each function is called with two args, the file before changing and after changi | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; letters, font-lock mode and fonts | ;; letters, font-lock mode and fonts | ||||
| (set-face-background 'vertical-border (face-foreground 'mode-line)) | |||||
| ;; (set-face-background 'vertical-border (face-foreground 'mode-line)) | |||||
| (when (eq system-type 'Darwin) | (when (eq system-type 'Darwin) | ||||
| (mac-set-input-method-parameter 'japanese 'cursor-color "red") | (mac-set-input-method-parameter 'japanese 'cursor-color "red") | ||||
| @@ -326,37 +383,10 @@ Each function is called with two args, the file before changing and after changi | |||||
| ;; (my-set-ascii-and-jp-font-with-size '("ProggyCleanTTSZ" 120 "takaogothic" 11)) | ;; (my-set-ascii-and-jp-font-with-size '("ProggyCleanTTSZ" 120 "takaogothic" 11)) | ||||
| ;; あ a | ;; あ a | ||||
| ;; inspired by http://www.emacswiki.org/emacs-en/ChangingCursorDynamically | |||||
| (defun my-set-modeline-color-according-to-write-mode () | |||||
| "" | |||||
| (let ((state (if buffer-read-only | |||||
| 'readonly | |||||
| (if overwrite-mode | |||||
| 'overwrite | |||||
| 'insert)))) | |||||
| (unless (eq state my-set-modeline-color-state) | |||||
| (set-face-foreground 'modeline | |||||
| (nth 1 | |||||
| (assq state | |||||
| my-set-modeline-color-color))) | |||||
| (set-face-background 'modeline | |||||
| (nth 2 | |||||
| (assq state | |||||
| my-set-modeline-color-color))) | |||||
| (setq my-set-modeline-color-state state)))) | |||||
| (defvar my-set-modeline-color-color nil "") | |||||
| (setq my-set-modeline-color-color | |||||
| (if window-system | |||||
| `((readonly "white" "blue") | |||||
| (overwrite "white" "red") | |||||
| (insert ,(face-foreground 'modeline) ,(face-background 'modeline))) | |||||
| `((readonly "blue" "white") | |||||
| (overwrite "red" "white") | |||||
| (insert ,(face-foreground 'modeline) ,(face-background 'modeline))))) | |||||
| (defvar my-set-modeline-color-state nil "") | |||||
| (add-hook 'post-command-hook 'my-set-modeline-color-according-to-write-mode) | |||||
| (add-hook 'after-init-hook 'my-set-modeline-color-according-to-write-mode) | |||||
| (and (dllib-if-unfound "set-modeline-color" | |||||
| "https://raw.github.com/10sr/emacs-lisp/master/set-modeline-color.el" | |||||
| t) | |||||
| (require 'set-modeline-color nil t)) | |||||
| ;; (set-face-foreground 'mode-line-inactive (if window-system "gray" "white")) | ;; (set-face-foreground 'mode-line-inactive (if window-system "gray" "white")) | ||||
| (set-face-background 'mode-line-inactive (if window-system "white" "green")) | (set-face-background 'mode-line-inactive (if window-system "white" "green")) | ||||
| @@ -388,7 +418,6 @@ Each function is called with two args, the file before changing and after changi | |||||
| ;; (setq delete-by-moving-to-trash t | ;; (setq delete-by-moving-to-trash t | ||||
| ;; trash-directory "~/.emacs.d/trash") | ;; trash-directory "~/.emacs.d/trash") | ||||
| ;; その他のhook | |||||
| (add-hook 'after-save-hook | (add-hook 'after-save-hook | ||||
| 'executable-make-buffer-file-executable-if-script-p) | 'executable-make-buffer-file-executable-if-script-p) | ||||
| @@ -404,7 +433,7 @@ Each function is called with two args, the file before changing and after changi | |||||
| (setq kill-read-only-ok t) | (setq kill-read-only-ok t) | ||||
| (setq truncate-partial-width-windows nil) ; when splitted horizontally | (setq truncate-partial-width-windows nil) ; when splitted horizontally | ||||
| ;; (setq-default line-spacing 0.2) | ;; (setq-default line-spacing 0.2) | ||||
| (setq-default indicate-empty-lines t) ; なんだろうこれ | |||||
| (setq-default indicate-empty-lines t) ; when using x indicate empty line | |||||
| (setq-default tab-width 4) | (setq-default tab-width 4) | ||||
| (setq-default indent-tabs-mode nil) | (setq-default indent-tabs-mode nil) | ||||
| (setq-default indent-line-function nil) | (setq-default indent-line-function nil) | ||||
| @@ -455,12 +484,7 @@ Each function is called with two args, the file before changing and after changi | |||||
| (global-set-key (kbd "M-u") 'undo) | (global-set-key (kbd "M-u") 'undo) | ||||
| (global-set-key (kbd "C-r") 'query-replace-regexp) | (global-set-key (kbd "C-r") 'query-replace-regexp) | ||||
| (global-set-key (kbd "C-s") 'isearch-forward-regexp) | (global-set-key (kbd "C-s") 'isearch-forward-regexp) | ||||
| (global-set-key (kbd "M-i") | |||||
| (lambda () | |||||
| (interactive) | |||||
| (call-interactively (key-binding (kbd "M-TAB")))) | |||||
| ;; (kbd "M-TAB") | |||||
| ) | |||||
| (global-set-key (kbd "M-i") (kbd "ESC TAB")) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; gmail | ;; gmail | ||||
| @@ -485,70 +509,6 @@ Each function is called with two args, the file before changing and after changi | |||||
| (substitute-key-definition 'kill-buffer 'my-query-kill-this-buffer global-map) | (substitute-key-definition 'kill-buffer 'my-query-kill-this-buffer global-map) | ||||
| ;;(global-set-key "\C-xk" 'my-query-kill-this-buffer) | ;;(global-set-key "\C-xk" 'my-query-kill-this-buffer) | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; for emacsclient | |||||
| ;; (if window-system (server-start)) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; global keys | |||||
| (define-key my-prefix-map (kbd "C-o") 'occur) | |||||
| ;; (define-key my-prefix-map (kbd "C-h") help-map) | |||||
| (global-set-key (kbd "C-\\") help-map) | |||||
| (define-key ctl-x-map (kbd "DEL") help-map) | |||||
| (define-key ctl-x-map (kbd "C-h") help-map) | |||||
| (define-key help-map "a" 'apropos) | |||||
| ;; compose window | |||||
| (global-set-key [?\C--] 'other-window) | |||||
| (global-set-key [?\C-0] 'delete-window) | |||||
| (global-set-key [?\C-1] 'delete-other-windows) | |||||
| (global-set-key [?\C-2] 'split-window-vertically) | |||||
| (global-set-key [?\C-3] 'split-window-horizontally) | |||||
| ;; disable annoying keys | |||||
| (global-set-key [prior] 'ignore) | |||||
| (global-set-key (kbd "<next>") 'ignore) | |||||
| (global-set-key [menu] 'ignore) | |||||
| (global-set-key [down-mouse-1] 'ignore) | |||||
| (global-set-key [down-mouse-2] 'ignore) | |||||
| (global-set-key [down-mouse-3] 'ignore) | |||||
| (global-set-key [mouse-1] 'ignore) | |||||
| (global-set-key [mouse-2] 'ignore) | |||||
| (global-set-key [mouse-3] 'ignore) | |||||
| (global-set-key (kbd "<eisu-toggle>") 'ignore) | |||||
| (global-set-key (kbd "C-<eisu-toggle>") 'ignore) | |||||
| (mouse-avoidance-mode 'banish) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; download library from web | |||||
| (require 'url) | |||||
| (defun dllib-if-unfound (lib url &optional bite-compile-p force-download-p) ; new version | |||||
| "if LIB does not exist, download it from URL and locate it to \"~/emacs.d/lisp/LIB.el\". | |||||
| return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| (let* ((dir (expand-file-name (concat user-emacs-directory "lisp/"))) | |||||
| (lpath (concat dir lib ".el")) | |||||
| (locate-p (locate-library lib))) | |||||
| (if (or force-download-p (not locate-p)) | |||||
| (progn (condition-case nil | |||||
| (progn (message "downloading %s..." url) | |||||
| (url-copy-file url | |||||
| lpath | |||||
| t) | |||||
| (when bite-compile-p | |||||
| (byte-compile-file lpath))) | |||||
| (error (and (file-readable-p lpath) | |||||
| (delete-file lpath)) | |||||
| (message "downloading %s...something wrong happened!" url) | |||||
| nil)) | |||||
| (locate-library lib)) | |||||
| locate-p))) | |||||
| '(setq package-archives '(("ELPA" . "http://tromey.com/elpa/") | '(setq package-archives '(("ELPA" . "http://tromey.com/elpa/") | ||||
| ("gnu" . "http://elpa.gnu.org/packages/") | ("gnu" . "http://elpa.gnu.org/packages/") | ||||
| @@ -758,110 +718,6 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| (require 'gtkbm nil t) | (require 'gtkbm nil t) | ||||
| (global-set-key (kbd "C-x C-d") 'gtkbm)) | (global-set-key (kbd "C-x C-d") 'gtkbm)) | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; frame buffer | |||||
| ;; todo: work well when opening the file that was already opened on another window | |||||
| (add-hook 'after-make-frame-functions | |||||
| (lambda (f) | |||||
| (set-window-buffer (frame-selected-window f) | |||||
| "*Messages*"))) | |||||
| (defun make-frame-command-with-name (name) | |||||
| "Make frame with name specified." | |||||
| (interactive "sName for new frame: ") | |||||
| (set-frame-parameter (make-frame-command) | |||||
| 'name | |||||
| name)) | |||||
| (defvar my-frame-buffer-plist nil) | |||||
| (defun my-frame-buffer-add (&optional buf frame) | |||||
| "" | |||||
| (setq my-frame-buffer-plist | |||||
| (plist-put my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)) | |||||
| (let ((lst (my-frame-buffer-get frame))) | |||||
| (if lst | |||||
| (add-to-list 'lst | |||||
| (or buf | |||||
| (current-buffer))) | |||||
| (list (or buf | |||||
| (current-buffer)))))))) | |||||
| (defun my-frame-buffer-remove (&optional buf frame) | |||||
| "" | |||||
| (setq my-frame-buffer-plist | |||||
| (plist-put my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)) | |||||
| (delq (or buf | |||||
| (current-buffer)) | |||||
| (my-frame-buffer-get frame))))) | |||||
| (defun my-frame-buffer-get (&optional frame) | |||||
| "" | |||||
| (plist-get my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)))) | |||||
| (defun my-frame-buffer-kill-all-buffer (&optional frame) | |||||
| "" | |||||
| (mapcar 'kill-buffer | |||||
| (my-frame-buffer-get frame))) | |||||
| (add-hook 'find-file-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'term-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'eshell-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'Man-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'kill-buffer-hook | |||||
| 'my-frame-buffer-remove) | |||||
| (add-hook 'delete-frame-functions | |||||
| 'my-frame-buffer-kill-all-buffer) | |||||
| (defvar my-desktop-terminal "roxterm") | |||||
| (defun my-execute-terminal () | |||||
| "" | |||||
| (interactive) | |||||
| (if (and (or (eq system-type 'windows-nt) | |||||
| window-system) | |||||
| my-desktop-terminal | |||||
| ) | |||||
| (let ((process-environment (cons "TERM=xterm" process-environment))) | |||||
| (start-process "terminal" | |||||
| nil | |||||
| my-desktop-terminal)) | |||||
| (my-term))) | |||||
| (defun my-term () | |||||
| "open terminal buffer and return that buffer." | |||||
| (interactive) | |||||
| (if (eq system-type 'windows-nt) | |||||
| (eshell t) | |||||
| (if (featurep 'multi-term) | |||||
| (multi-term) | |||||
| (ansi-term "/bin/bash")))) | |||||
| (defun my-delete-frame-or-kill-emacs () | |||||
| "delete frame when opening multiple frame, kill emacs when only one." | |||||
| (interactive) | |||||
| (if (eq 1 | |||||
| (length (frame-list))) | |||||
| (save-buffers-kill-emacs) | |||||
| (delete-frame))) | |||||
| (define-key my-prefix-map (kbd "C-s") 'my-execute-terminal) | |||||
| (define-key my-prefix-map (kbd "C-f") 'make-frame-command-with-name) | |||||
| (global-set-key (kbd "C-x C-c") 'my-delete-frame-or-kill-emacs) | |||||
| (define-key my-prefix-map (kbd "C-x C-c") 'save-buffers-kill-emacs) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; term mode | ;; term mode | ||||
| @@ -1049,8 +905,8 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; recentf-mode | ;; recentf-mode | ||||
| (add-hook 'recentf-dialog-mode-hook | |||||
| 'my-recentf-abbrev-list) | |||||
| ;; (add-hook 'recentf-dialog-mode-hook | |||||
| ;; 'my-recentf-abbrev-list) | |||||
| (defun my-recentf-delete-entry () | (defun my-recentf-delete-entry () | ||||
| "" | "" | ||||
| @@ -1117,7 +973,7 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| ;; (lambda () | ;; (lambda () | ||||
| ;; (recentf-add-file default-directory))) | ;; (recentf-add-file default-directory))) | ||||
| (recentf-mode 1) | (recentf-mode 1) | ||||
| (add-to-list 'recentf-filename-handlers 'abbreviate-file-name) | |||||
| ;; (add-to-list 'recentf-filename-handlers 'abbreviate-file-name) | |||||
| (add-to-list 'recentf-exclude (rx-to-string recentf-save-file))) | (add-to-list 'recentf-exclude (rx-to-string recentf-save-file))) | ||||
| (add-hook 'recentf-dialog-mode-hook | (add-hook 'recentf-dialog-mode-hook | ||||
| @@ -1254,32 +1110,6 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| ) | ) | ||||
| (setq dired-listing-switches "-lhFG") | (setq dired-listing-switches "-lhFG") | ||||
| (define-minor-mode my-dired-display-all-mode | |||||
| "" | |||||
| :init-value nil | |||||
| :global nil | |||||
| :lighter " ALL" | |||||
| (when (eq major-mode 'dired-mode) | |||||
| (my-dired-display-all-set) | |||||
| (revert-buffer))) | |||||
| (defun my-dired-display-all-set () | |||||
| "" | |||||
| (if my-dired-display-all-mode | |||||
| (or (string-match-p my-dired-display-all-switch | |||||
| dired-actual-switches) | |||||
| (setq dired-actual-switches | |||||
| (concat my-dired-display-all-switch | |||||
| " " | |||||
| dired-actual-switches))) | |||||
| (setq dired-actual-switches | |||||
| (replace-regexp-in-string (concat my-dired-display-all-switch | |||||
| " ") | |||||
| "" | |||||
| dired-actual-switches)))) | |||||
| (defvar my-dired-display-all-switch "-A") | |||||
| (add-hook 'dired-mode-hook | |||||
| 'my-dired-display-all-set) | |||||
| (put 'dired-find-alternate-file 'disabled nil) ; when using dired-find-alternate-file reuse current dired buffer for the file to open | (put 'dired-find-alternate-file 'disabled nil) ; when using dired-find-alternate-file reuse current dired buffer for the file to open | ||||
| (setq dired-ls-F-marks-symlinks t) | (setq dired-ls-F-marks-symlinks t) | ||||
| @@ -1315,7 +1145,6 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| (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 "P" 'my-dired-do-pack-or-unpack) | ;; (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 "/" 'dired-isearch-filenames) | (define-key dired-mode-map "/" 'dired-isearch-filenames) | ||||
| (define-key dired-mode-map (kbd "DEL") 'dired-up-directory) | (define-key dired-mode-map (kbd "DEL") 'dired-up-directory) | ||||
| (substitute-key-definition 'dired-next-line 'my-dired-next-line dired-mode-map) | (substitute-key-definition 'dired-next-line 'my-dired-next-line dired-mode-map) | ||||
| @@ -1334,6 +1163,17 @@ return nil if LIB unfound and downloading failed, otherwise the path of LIB." | |||||
| (lambda () | (lambda () | ||||
| (define-key dired-mode-map "P" 'dired-do-pack-or-unpack)))) | (define-key dired-mode-map "P" 'dired-do-pack-or-unpack)))) | ||||
| (and (dllib-if-unfound "dired-list-all-mode" | |||||
| "https://raw.github.com/10sr/emacs-lisp/master/dired-list-all-mode.el" | |||||
| t) | |||||
| (require 'dired-list-all-mode nil t) | |||||
| (setq dired-listing-switches "-lhFG") | |||||
| (add-hook 'dired-mode-hook | |||||
| (lambda () | |||||
| (define-key dired-mode-map "a" 'dired-list-all-mode) | |||||
| ))) | |||||
| ;; http://blog.livedoor.jp/tek_nishi/archives/4693204.html | ;; http://blog.livedoor.jp/tek_nishi/archives/4693204.html | ||||
| (defun my-dired-toggle-mark() | (defun my-dired-toggle-mark() | ||||
| @@ -1600,6 +1440,110 @@ if arg given, use that eshell buffer, otherwise make new eshell buffer." | |||||
| (add-hook 'after-revert-hook | (add-hook 'after-revert-hook | ||||
| 'my-set-buffer-file-last-modified-time) | 'my-set-buffer-file-last-modified-time) | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||||
| ;; frame buffer | |||||
| ;; todo: work well when opening the file that was already opened on another window | |||||
| (add-hook 'after-make-frame-functions | |||||
| (lambda (f) | |||||
| (set-window-buffer (frame-selected-window f) | |||||
| "*Messages*"))) | |||||
| (defun make-frame-command-with-name (name) | |||||
| "Make frame with name specified." | |||||
| (interactive "sName for new frame: ") | |||||
| (set-frame-parameter (make-frame-command) | |||||
| 'name | |||||
| name)) | |||||
| (defvar my-frame-buffer-plist nil) | |||||
| (defun my-frame-buffer-add (&optional buf frame) | |||||
| "" | |||||
| (setq my-frame-buffer-plist | |||||
| (plist-put my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)) | |||||
| (let ((lst (my-frame-buffer-get frame))) | |||||
| (if lst | |||||
| (add-to-list 'lst | |||||
| (or buf | |||||
| (current-buffer))) | |||||
| (list (or buf | |||||
| (current-buffer)))))))) | |||||
| (defun my-frame-buffer-remove (&optional buf frame) | |||||
| "" | |||||
| (setq my-frame-buffer-plist | |||||
| (plist-put my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)) | |||||
| (delq (or buf | |||||
| (current-buffer)) | |||||
| (my-frame-buffer-get frame))))) | |||||
| (defun my-frame-buffer-get (&optional frame) | |||||
| "" | |||||
| (plist-get my-frame-buffer-plist | |||||
| (or frame | |||||
| (selected-frame)))) | |||||
| (defun my-frame-buffer-kill-all-buffer (&optional frame) | |||||
| "" | |||||
| (mapcar 'kill-buffer | |||||
| (my-frame-buffer-get frame))) | |||||
| (add-hook 'find-file-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'term-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'eshell-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'Man-mode-hook | |||||
| 'my-frame-buffer-add) | |||||
| (add-hook 'kill-buffer-hook | |||||
| 'my-frame-buffer-remove) | |||||
| (add-hook 'delete-frame-functions | |||||
| 'my-frame-buffer-kill-all-buffer) | |||||
| (defvar my-desktop-terminal "roxterm") | |||||
| (defun my-execute-terminal () | |||||
| "" | |||||
| (interactive) | |||||
| (if (and (or (eq system-type 'windows-nt) | |||||
| window-system) | |||||
| my-desktop-terminal | |||||
| ) | |||||
| (let ((process-environment (cons "TERM=xterm" process-environment))) | |||||
| (start-process "terminal" | |||||
| nil | |||||
| my-desktop-terminal)) | |||||
| (my-term))) | |||||
| (defun my-term () | |||||
| "open terminal buffer and return that buffer." | |||||
| (interactive) | |||||
| (if (eq system-type 'windows-nt) | |||||
| (eshell t) | |||||
| (if (featurep 'multi-term) | |||||
| (multi-term) | |||||
| (ansi-term "/bin/bash")))) | |||||
| (defun my-delete-frame-or-kill-emacs () | |||||
| "delete frame when opening multiple frame, kill emacs when only one." | |||||
| (interactive) | |||||
| (if (eq 1 | |||||
| (length (frame-list))) | |||||
| (save-buffers-kill-emacs) | |||||
| (delete-frame))) | |||||
| (define-key my-prefix-map (kbd "C-s") 'my-execute-terminal) | |||||
| (define-key my-prefix-map (kbd "C-f") 'make-frame-command-with-name) | |||||
| (global-set-key (kbd "C-x C-c") 'my-delete-frame-or-kill-emacs) | |||||
| (define-key my-prefix-map (kbd "C-x C-c") 'save-buffers-kill-emacs) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; auto saving | ;; auto saving | ||||
| @@ -1831,30 +1775,35 @@ this is test, does not rename files" | |||||
| (defun my-load-scim () | (defun my-load-scim () | ||||
| "use scim-bridge.el as japanese im." | "use scim-bridge.el as japanese im." | ||||
| ;; Load scim-bridge. | ;; Load scim-bridge. | ||||
| (require 'scim-bridge) | |||||
| ;; Turn on scim-mode automatically after loading .emacs | |||||
| (add-hook 'after-init-hook 'scim-mode-on) | |||||
| (setq scim-cursor-color "red") | |||||
| (scim-define-preedit-key ?\^h t) | |||||
| (scim-define-common-key ?\* nil) | |||||
| (scim-define-common-key ?\^/ nil)) | |||||
| (when (require 'scim-bridge nil t) | |||||
| ;; Turn on scim-mode automatically after loading .emacs | |||||
| (add-hook 'after-init-hook 'scim-mode-on) | |||||
| (setq scim-cursor-color "red") | |||||
| (scim-define-preedit-key ?\^h t) | |||||
| (scim-define-common-key ?\* nil) | |||||
| (scim-define-common-key ?\^/ nil))) | |||||
| (defun my-load-anthy () | (defun my-load-anthy () | ||||
| "use anthy.el as japanese im." | "use anthy.el as japanese im." | ||||
| ;; anthy | ;; anthy | ||||
| (require 'anthy) | |||||
| (global-set-key [muhenkan] (lambda () (interactive) (anthy-mode-off))) | |||||
| (global-set-key [henkan] (lambda () (interactive) (anthy-mode-on))) | |||||
| (when (>= emacs-major-version 23) | |||||
| (setq anthy-accept-timeout 1))) | |||||
| (when (require 'anthy nil t) | |||||
| (global-set-key (kbd "<muhenkan>") (lambda () (interactive) (anthy-mode-off))) | |||||
| (global-set-key (kbd "<henkan>") (lambda () (interactive) (anthy-mode-on))) | |||||
| (when (>= emacs-major-version 23) | |||||
| (setq anthy-accept-timeout 1)))) | |||||
| ;; quail | ;; quail | ||||
| ;; aproposs input-method for some information | ;; aproposs input-method for some information | ||||
| (setq default-input-method "japanese") | |||||
| ;; (setq default-input-method "japanese") | |||||
| (defun my-load-mozc-el () | |||||
| "" | |||||
| (setq mozc-leim-title "[MZ]") | |||||
| (when (require 'mozc nil t) | |||||
| (setq defauit-input-method "japanese-mozc") | |||||
| )) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; windows用設定 | |||||
| ;; for windows | |||||
| ;; (add-to-list 'exec-path "c:/Program Files/Gauche/bin/") | ;; (add-to-list 'exec-path "c:/Program Files/Gauche/bin/") | ||||