|
|
@@ -27,6 +27,52 @@ |
|
|
|
;; buffer-file-name))) |
|
|
|
|
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; Some macros for internals |
|
|
|
|
|
|
|
(defmacro safe-require-or-eval (feature) |
|
|
|
"Require FEATURE if available. |
|
|
|
|
|
|
|
At compile time the feature will be loaded immediately." |
|
|
|
`(eval-when-compile |
|
|
|
(require ,feature nil t))) |
|
|
|
|
|
|
|
(defmacro autoload-eval-lazily (feature &optional functions &rest body) |
|
|
|
"Define autoloading FEATURE that defines FUNCTIONS. |
|
|
|
FEATURE is a symbol. FUNCTIONS is a list of symbols. If FUNCTIONS is nil, |
|
|
|
the function same as FEATURE is defined as autoloaded function. BODY is passed |
|
|
|
to `eval-after-load'. |
|
|
|
After this macro is expanded, this returns the path to library if FEATURE |
|
|
|
found, otherwise returns nil." |
|
|
|
(let* ((libname (symbol-name (eval feature))) |
|
|
|
(libpath (locate-library libname))) |
|
|
|
(and libpath |
|
|
|
`(progn |
|
|
|
,@(mapcar (lambda (f) |
|
|
|
(unless (fboundp f) |
|
|
|
`(progn |
|
|
|
(message "Autoloaded function `%S' defined (%s)" |
|
|
|
(quote ,f) |
|
|
|
,libpath) |
|
|
|
(autoload (quote ,f) |
|
|
|
,libname |
|
|
|
,(concat "Autoloaded function defined in \"" |
|
|
|
libpath |
|
|
|
"\".") |
|
|
|
t)))) |
|
|
|
(or (eval functions) |
|
|
|
`(,(eval feature)))) |
|
|
|
(eval-after-load ,feature |
|
|
|
(quote (progn |
|
|
|
,@body))) |
|
|
|
(locate-library ,libname))))) |
|
|
|
|
|
|
|
(put 'autoload-eval-lazily 'lisp-indent-function 2) |
|
|
|
|
|
|
|
(when (autoload-eval-lazily 'tetris nil |
|
|
|
(message "Tetris loaded!")) |
|
|
|
(message "Tetris found!")) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; download library from web |
|
|
|
|
|
|
@@ -150,7 +196,7 @@ IF OK-IF-ALREADY-EXISTS is true force download." |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
(when (require 'package nil t) |
|
|
|
(when (safe-require-or-eval 'package) |
|
|
|
;; (add-to-list 'package-archives |
|
|
|
;; '("ELPA" . "http://tromey.com/elpa/")) |
|
|
|
(add-to-list 'package-archives |
|
|
@@ -173,45 +219,6 @@ IF OK-IF-ALREADY-EXISTS is true force download." |
|
|
|
|
|
|
|
;; (lazy-load-eval 'sudoku) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; autoload |
|
|
|
|
|
|
|
(defmacro autoload-eval-lazily (feature &optional functions &rest body) |
|
|
|
"Define autoloading FEATURE that defines FUNCTIONS. |
|
|
|
FEATURE is a symbol. FUNCTIONS is a list of symbols. If FUNCTIONS is nil, |
|
|
|
the function same as FEATURE is defined as autoloaded function. BODY is passed |
|
|
|
to `eval-after-load'. |
|
|
|
After this macro is expanded, this returns the path to library if FEATURE |
|
|
|
found, otherwise returns nil." |
|
|
|
(let* ((libname (symbol-name (eval feature))) |
|
|
|
(libpath (locate-library libname))) |
|
|
|
(and libpath |
|
|
|
`(progn |
|
|
|
,@(mapcar (lambda (f) |
|
|
|
(unless (fboundp f) |
|
|
|
`(progn |
|
|
|
(message "Autoloaded function `%S' defined (%s)" |
|
|
|
(quote ,f) |
|
|
|
,libpath) |
|
|
|
(autoload (quote ,f) |
|
|
|
,libname |
|
|
|
,(concat "Autoloaded function defined in \"" |
|
|
|
libpath |
|
|
|
"\".") |
|
|
|
t)))) |
|
|
|
(or (eval functions) |
|
|
|
`(,(eval feature)))) |
|
|
|
(eval-after-load ,feature |
|
|
|
(quote (progn |
|
|
|
,@body))) |
|
|
|
(locate-library ,libname))))) |
|
|
|
|
|
|
|
(put 'autoload-eval-lazily 'lisp-indent-function 2) |
|
|
|
|
|
|
|
(when (autoload-eval-lazily 'tetris nil |
|
|
|
(message "Tetris loaded!")) |
|
|
|
(message "Tetris found!")) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; my-idle-hook |
|
|
|
|
|
|
@@ -301,7 +308,7 @@ found, otherwise returns nil." |
|
|
|
(fetch-library |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/save-window-size.el" |
|
|
|
t) |
|
|
|
(require 'save-window-size nil t)) |
|
|
|
(safe-require-or-eval 'save-window-size)) |
|
|
|
|
|
|
|
(defun reload-init-file () |
|
|
|
"Reload Emacs init file." |
|
|
@@ -410,7 +417,7 @@ found, otherwise returns nil." |
|
|
|
default-directory)) |
|
|
|
)) |
|
|
|
;; this wont happen? (TMUX is not set, TERM is screen, not ssh-ed) |
|
|
|
(and (require 'terminal-title nil t) |
|
|
|
(and (safe-require-or-eval 'terminal-title) |
|
|
|
(terminal-title-mode))) |
|
|
|
|
|
|
|
(setq eol-mnemonic-dos "\\r\\n") |
|
|
@@ -435,7 +442,7 @@ found, otherwise returns nil." |
|
|
|
(display-time-update)) |
|
|
|
)) |
|
|
|
|
|
|
|
(when (require 'time nil t) |
|
|
|
(when (safe-require-or-eval 'time) |
|
|
|
(setq display-time-interval 29) |
|
|
|
(setq display-time-day-and-date t) |
|
|
|
(setq display-time-format "%a, %d %b %Y %T") |
|
|
@@ -534,7 +541,7 @@ found, otherwise returns nil." |
|
|
|
(add-hook 'input-method-inactivate-hook |
|
|
|
(lambda () (set-cursor-color "black")))) |
|
|
|
|
|
|
|
(when (require 'paren nil t) |
|
|
|
(when (safe-require-or-eval 'paren) |
|
|
|
(show-paren-mode 1) |
|
|
|
(setq show-paren-delay 0.5 |
|
|
|
show-paren-style 'parenthesis) ; mixed is hard to read |
|
|
@@ -573,7 +580,7 @@ found, otherwise returns nil." |
|
|
|
(font-lock-add-keywords nil my-jspace-face) |
|
|
|
)) |
|
|
|
|
|
|
|
(when (require 'whitespace nil t) |
|
|
|
(when (safe-require-or-eval 'whitespace) |
|
|
|
(add-to-list 'whitespace-display-mappings ; not work |
|
|
|
`(tab-mark ?\t ,(vconcat "^I\t"))) |
|
|
|
(add-to-list 'whitespace-display-mappings |
|
|
@@ -599,7 +606,7 @@ found, otherwise returns nil." |
|
|
|
(fetch-library |
|
|
|
"http://www.emacswiki.org/emacs/download/fill-column-indicator.el" |
|
|
|
t) |
|
|
|
(require 'fill-column-indicator nil t) |
|
|
|
(safe-require-or-eval 'fill-column-indicator) |
|
|
|
(setq fill-column-indicator)) |
|
|
|
|
|
|
|
;; highlight current line |
|
|
@@ -655,7 +662,7 @@ found, otherwise returns nil." |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/set-modeline-color.el" |
|
|
|
t) |
|
|
|
(progn |
|
|
|
(require 'set-modeline-color nil t))) |
|
|
|
(safe-require-or-eval 'set-modeline-color))) |
|
|
|
|
|
|
|
(let ((fg (face-foreground 'default)) |
|
|
|
(bg (face-background 'default))) |
|
|
@@ -671,7 +678,7 @@ found, otherwise returns nil." |
|
|
|
(and (fetch-library |
|
|
|
"https://raw.github.com/tarao/elisp/master/end-mark.el" |
|
|
|
t) |
|
|
|
(require 'end-mark nil t) |
|
|
|
(safe-require-or-eval 'end-mark) |
|
|
|
(global-end-mark-mode)) |
|
|
|
|
|
|
|
|
|
|
@@ -683,7 +690,7 @@ found, otherwise returns nil." |
|
|
|
;; save cursor position |
|
|
|
(setq save-place-file (concat user-emacs-directory |
|
|
|
"places")) |
|
|
|
(when (require 'saveplace nil t) |
|
|
|
(when (safe-require-or-eval 'saveplace) |
|
|
|
(setq-default save-place t)) |
|
|
|
|
|
|
|
;; http://www.bookshelf.jp/soft/meadow_24.html#SEC260 |
|
|
@@ -719,7 +726,7 @@ found, otherwise returns nil." |
|
|
|
(and (fetch-library |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/smart-revert.el" |
|
|
|
t) |
|
|
|
(require 'smart-revert nil t) |
|
|
|
(safe-require-or-eval 'smart-revert) |
|
|
|
(smart-revert-on)) |
|
|
|
|
|
|
|
;; autosave |
|
|
@@ -727,7 +734,7 @@ found, otherwise returns nil." |
|
|
|
(and (fetch-library |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/autosave.el" |
|
|
|
t) |
|
|
|
(require 'autosave nil t) |
|
|
|
(safe-require-or-eval 'autosave) |
|
|
|
(autosave-set 2)) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
@@ -800,7 +807,7 @@ found, otherwise returns nil." |
|
|
|
(defun my-load-scim () |
|
|
|
"Use scim-bridge.el as japanese im." |
|
|
|
;; Load scim-bridge. |
|
|
|
(when (require 'scim-bridge nil t) |
|
|
|
(when (safe-require-or-eval require 'scim-bridge) |
|
|
|
;; Turn on scim-mode automatically after loading .emacs |
|
|
|
(add-hook 'after-init-hook 'scim-mode-on) |
|
|
|
(setq scim-cursor-color "red") |
|
|
@@ -811,7 +818,7 @@ found, otherwise returns nil." |
|
|
|
(defun my-load-anthy () |
|
|
|
"Use anthy.el as japanese im." |
|
|
|
;; anthy |
|
|
|
(when (require 'anthy nil t) |
|
|
|
(when (safe-require-or-eval 'anthy) |
|
|
|
(global-set-key |
|
|
|
(kbd "<muhenkan>") (lambda () (interactive) (anthy-mode-off))) |
|
|
|
(global-set-key (kbd "<henkan>") (lambda () (interactive) (anthy-mode-on))) |
|
|
@@ -824,7 +831,7 @@ found, otherwise returns nil." |
|
|
|
(defun my-load-mozc-el () |
|
|
|
"Use mozc.el as japanese im." |
|
|
|
(setq mozc-leim-title "[MZ]") |
|
|
|
(when (require 'mozc nil t) |
|
|
|
(when (safe-require-or-eval 'mozc) |
|
|
|
(setq defauit-input-method "japanese-mozc") |
|
|
|
)) |
|
|
|
|
|
|
@@ -877,7 +884,7 @@ found, otherwise returns nil." |
|
|
|
(not (equal (getenv "DISPLAY") "")) |
|
|
|
(executable-find "xclip") |
|
|
|
;; (< emacs-major-version 24) |
|
|
|
(require 'xclip nil t) |
|
|
|
(safe-require-or-eval require 'xclip) |
|
|
|
nil |
|
|
|
(turn-on-xclip)) |
|
|
|
|
|
|
@@ -885,14 +892,14 @@ found, otherwise returns nil." |
|
|
|
(fetch-library |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/pasteboard.el" |
|
|
|
t) |
|
|
|
(require 'pasteboard nil t) |
|
|
|
(safe-require-or-eval 'pasteboard) |
|
|
|
(turn-on-pasteboard) |
|
|
|
(getenv "TMUX") |
|
|
|
(pasteboard-enable-rtun)) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
|
;; https://github.com/lunaryorn/flycheck |
|
|
|
(when (require 'flycheck nil t) |
|
|
|
(when (safe-require-or-eval 'flycheck) |
|
|
|
(add-hook 'after-init-hook 'global-flycheck-mode)) |
|
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
|
@@ -944,7 +951,7 @@ found, otherwise returns nil." |
|
|
|
(and (fetch-library |
|
|
|
"https://raw.github.com/10sr/emacs-lisp/master/remember-major-modes-mode.el" |
|
|
|
t) |
|
|
|
(require 'remember-major-modes-mode nil t) |
|
|
|
(safe-require-or-eval 'remember-major-modes-mode) |
|
|
|
(remember-major-modes-mode 1) |
|
|
|
) |
|
|
|
|
|
|
@@ -955,16 +962,16 @@ found, otherwise returns nil." |
|
|
|
'("python2" . python-mode)) |
|
|
|
|
|
|
|
;; http://fukuyama.co/foreign-regexp |
|
|
|
'(and (require 'foreign-regexp nil t) |
|
|
|
'(and (safe-require-or-eval 'foreign-regexp) |
|
|
|
(progn |
|
|
|
(setq foreign-regexp/regexp-type 'perl) |
|
|
|
'(setq reb-re-syntax 'foreign-regexp) |
|
|
|
)) |
|
|
|
|
|
|
|
(require 'session nil t) |
|
|
|
(safe-require-or-eval 'session) |
|
|
|
|
|
|
|
(autoload-eval-lazily 'sql '(sql-mode) |
|
|
|
(require 'sql-indent nil t)) |
|
|
|
(safe-require-or-eval 'sql-indent)) |
|
|
|
|
|
|
|
(and (fetch-library "https://raw.github.com/10sr/emacs-lisp/master/gtkbm.el" |
|
|
|
t) |
|
|
@@ -1028,7 +1035,7 @@ found, otherwise returns nil." |
|
|
|
|
|
|
|
(defalias 'qcalc 'quick-calc) |
|
|
|
|
|
|
|
(require 'simple nil t) |
|
|
|
(safe-require-or-eval 'simple) |
|
|
|
|
|
|
|
(add-hook 'makefile-mode-hook |
|
|
|
(lambda () |
|
|
@@ -1228,11 +1235,11 @@ found, otherwise returns nil." |
|
|
|
(add-hook 'js-mode-hook |
|
|
|
'flymake-jslint-load))) |
|
|
|
|
|
|
|
(require 'js-doc nil t) |
|
|
|
(safe-require-or-eval 'js-doc) |
|
|
|
|
|
|
|
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation) |
|
|
|
|
|
|
|
(when (require 'uniquify nil t) |
|
|
|
(when (safe-require-or-eval 'uniquify) |
|
|
|
(setq uniquify-buffer-name-style 'post-forward-angle-brackets) |
|
|
|
(setq uniquify-ignore-buffers-re "*[^*]+*") |
|
|
|
(setq uniquify-min-dir-content 1)) |
|
|
@@ -1657,7 +1664,7 @@ found, otherwise returns nil." |
|
|
|
recentf-max-saved-items 30 |
|
|
|
recentf-show-file-shortcuts-flag nil) |
|
|
|
|
|
|
|
(when (require 'recentf nil t) |
|
|
|
(when (safe-require-or-eval 'recentf) |
|
|
|
(add-to-list 'recentf-exclude |
|
|
|
(regexp-quote recentf-save-file)) |
|
|
|
(add-to-list 'recentf-exclude |
|
|
@@ -1834,7 +1841,7 @@ the list." |
|
|
|
;; reuse current dired buffer for the file to open |
|
|
|
(setq dired-ls-F-marks-symlinks t) |
|
|
|
|
|
|
|
(when (require 'ls-lisp nil t) |
|
|
|
(when (safe-require-or-eval 'ls-lisp) |
|
|
|
(setq ls-lisp-use-insert-directory-program nil) ; always use ls-lisp |
|
|
|
(setq ls-lisp-dirs-first t) |
|
|
|
(setq ls-lisp-use-localized-time-format t) |
|
|
@@ -2064,7 +2071,7 @@ C-x t to toggling emacs-text-mode |
|
|
|
,@args) |
|
|
|
" ")) |
|
|
|
;; (eshell-git-shell-command-to-string args) |
|
|
|
(if (require 'git-command nil t) |
|
|
|
(if (safe-require-or-eval 'git-command) |
|
|
|
(git-command (mapconcat 'shell-quote-argument |
|
|
|
args |
|
|
|
" ")) |
|
|
|