;; 外部ファイル読み込み ;; (load-file "~/filepath") ;; (thing-at-point 'word) ;; (define-generic-mode) (unless (file-directory-p (expand-file-name "~/.emacs.d")) (make-directory (expand-file-name "~/.emacs.d"))) (unless (file-directory-p (expand-file-name "~/.emacs.d/lisp")) (make-directory (expand-file-name "~/.emacs.d/lisp"))) (add-to-list 'load-path "~/.emacs.d/lisp") (add-to-list 'load-path "~/dbx/Public/myelisp") (require 'cl) (defvar my-prefix-map (make-sparse-keymap)) (global-set-key (kbd "C-z") my-prefix-map) (define-key my-prefix-map (kbd "C-q") 'quoted-insert) (define-key my-prefix-map (kbd "C-z") 'suspend-frame) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; start and quit (setq inhibit-startup-message t) (setq frame-title-format (list '(:eval (my-format-time-string)) " | %b " '(:eval (number-to-string (length (buffer-list-not-start-with-space)))) " buffers [" invocation-name " " emacs-version " " (symbol-name system-type) "] " '(:eval (symbol-name last-command)))) (defun buffer-list-not-start-with-space () (let ((bl (buffer-list)) b nbl) (while bl (setq b (pop bl)) (unless (string-equal " " (substring (buffer-name b) 0 1)) (add-to-list 'nbl b))) nbl)) (setq confirm-kill-emacs 'y-or-n-p) (setq gc-cons-threshold (* 1024 1024 4)) (when window-system (add-to-list 'default-frame-alist '(cursor-type . box)) (add-to-list 'default-frame-alist '(background-color . "white")) (add-to-list 'default-frame-alist '(foreground-color . "gray10")) ;; (add-to-list 'default-frame-alist '(alpha . (80 100 100 100))) ;聞いてないみたい ) (if window-system (menu-bar-mode 1) (menu-bar-mode 0)) (tool-bar-mode 0) (set-scroll-bar-mode nil) (add-hook 'kill-emacs-hook ; 終了時に読み込んで壊れてないか調べる (lambda () (when (file-readable-p "~/.emacs") (load-file "~/.emacs")))) (add-hook 'after-init-hook (lambda () ;; (message "init time: %d msec" ;; (+ (* (- (nth 1 after-init-time) (nth 1 before-init-time)) 1000) ;; (/ (- (nth 2 after-init-time) (nth 2 before-init-time)) 1000))) (message (emacs-init-time)) (switch-to-buffer "*Messages*") )) (cd ".") ; when using windows use / instead of \ in `default-directory' ;; locale (set-language-environment "Japanese") (set-default-coding-systems 'utf-8-unix) (prefer-coding-system 'utf-8-unix) (setq system-time-locale "C") ;; display (setq redisplay-dont-pause t) (setq visible-bell t) (setq ring-bell-function 'ignore) ;; (comint-show-maximum-output) ;; kill scratch (add-hook 'after-init-hook (lambda () (kill-buffer "*scratch*"))) (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))) (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) ;; modifier keys (setq mac-option-modifier 'control) (setq w32-apps-modifier 'meta) ;; http://www.emacswiki.org/emacs/ChangingCursorDynamically ;; bufferの保存はなんで必要なんだろう? ;; Change cursor color according to mode (defvar hcz-set-cursor-color-color "") (defvar hcz-set-cursor-color-buffer "") (defun hcz-set-cursor-color-according-to-mode () "change cursor color according to some minor modes." ;; set-cursor-color is somewhat costly, so we only call it when needed: (let ((color (if buffer-read-only "blue" (if overwrite-mode "yellow" "black")))) (unless (and (string= color hcz-set-cursor-color-color) (string= (buffer-name) hcz-set-cursor-color-buffer)) (set-cursor-color (setq hcz-set-cursor-color-color color)) (setq hcz-set-cursor-color-buffer (buffer-name))))) (add-hook 'post-command-hook 'hcz-set-cursor-color-according-to-mode) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; minibuffer (setq insert-default-directory t) (setq completion-ignore-case t read-file-name-completion-ignore-case t read-buffer-completion-ignore-case t) (setq resize-mini-window t) (temp-buffer-resize-mode 1) (fset 'yes-or-no-p 'y-or-n-p) (define-key read-expression-map (kbd "TAB") 'lisp-complete-symbol) ; complete symbol when `eval' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; editting (setq require-final-newline t) (setq kill-whole-line t) (setq scroll-conservatively 35 scroll-margin 2 scroll-step 0) ;4行ずつスクロール? (setq default-major-mode 'text-mode) (setq next-line-add-newlines nil) (setq kill-read-only-ok t) (setq truncate-partial-width-windows nil) ; when splitted horizontally ;; (setq-default line-spacing 0.2) (setq-default indicate-empty-lines t) ; なんだろうこれ (setq-default tab-width 4) (setq-default indent-tabs-mode nil) (pc-selection-mode 1) (delete-selection-mode 1) (cua-mode 0) ;; key bindings ;; moving around ;; (global-set-key (kbd "M-j") 'next-line) ;; (global-set-key (kbd "M-k") 'previous-line) ;; (global-set-key (kbd "M-h") 'backward-char) ;; (global-set-key (kbd "M-l") 'forward-char) ;;(keyboard-translate ?\M-j ?\C-j) (global-set-key (kbd "M-p") 'backward-paragraph) (global-set-key (kbd "M-n") 'forward-paragraph) (global-set-key (kbd "C-") (lambda () (interactive)(scroll-down 1))) (global-set-key (kbd "C-") (lambda () (interactive)(scroll-up 1))) (global-set-key (kbd "C-") 'scroll-down) (global-set-key (kbd "C-") 'scroll-up) (global-set-key (kbd "C-x M-x") 'execute-extended-command) (global-set-key (kbd "C-x M-:") 'eval-expression) (global-set-key (kbd "