X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=dot-files%2F_emacs_el;h=a488ab28b332a23c62cc295c52a3ffa513987230;hb=95d6b5a02809e271c82a002b728ed785115167f6;hp=c0d866e74d90be735710c927a09343a2f62ae1db;hpb=09fef290f7b5df33d03179f0b7c0e616968aba98;p=sugar.git diff --git a/dot-files/_emacs_el b/dot-files/_emacs_el index c0d866e..a488ab2 100644 --- a/dot-files/_emacs_el +++ b/dot-files/_emacs_el @@ -5,7 +5,7 @@ (add-to-list 'load-path "/usr/local/share/emacs/site-lisp") ;; Setting for encodings of the environment ----------------------------------- -(set-language-environment 'Japanese) +;(set-language-environment 'Japanese) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (setq default-file-name-coding-system 'utf-8) @@ -32,6 +32,24 @@ (setq ring-bell-function (lambda ())) (windmove-default-keybindings) +(require 'server) +(if (server-running-p) + (message "Warning: server %S is already running." server-name) + (server-start)) + +;; Host specific configuration ------------------------------------------------ +(let ((host (system-name))) + (cond ((equal host "aria.cielonegro.org") + (progn + ;; Use firefox as the default browser. + (setq browse-url-firefox-program "/opt/local/bin/firefox") + ;; Specify how to connect to some of the remote servers. + (setq tramp-default-proxies-alist nil) + (add-to-list 'tramp-default-proxies-alist + '("rd8" nil "/sshx:pho@yebisu1.ymir.jp:")) + (add-to-list 'tramp-default-proxies-alist + '("yebisu1\\.ymir\\.jp" nil "/sshx:pho@boss:")))))) + ;; Settings for Browser -------------------------------------------------------- (setq browse-url-browser-function 'w3m-browse-url) (global-set-key "\C-xm" 'browse-url-at-point) @@ -42,26 +60,45 @@ (display-time) ;; Setting for Frames ---------------------------------------------------------- +(when window-system + (if (equal (system-name) "seras") + (set-default-font "Dejavu Sans Mono 11") + (set-default-font "Dejavu Sans Mono 13"))) + +;(when window-system +; (set-default-font "Inconsolata-14") +; (set-face-font 'variable-pitch "Inconsolata-14") +; (set-fontset-font (frame-parameter nil 'font) +; 'japanese-jisx0208 +; '("Takaoゴシック" . "unicode-bmp"))) + +;(when window-system +; (add-to-list 'default-frame-alist +; '(font . "Bitstream Vera Sans Mono 12")) +; (set-frame-font "Bitstream Vera Sans Mono 12") +; (set-fontset-font nil;(frame-parameter nil 'font) +; 'japanese-jisx0208 +; '("Hiragino Kaku Gothic Pro W3" . "unicode-bmp"))) ;; Hooks for newline-and-indent ------------------------------------------------ -(mapcar (lambda (hook) - (add-hook hook - (lambda () - (local-set-key "\C-m" 'newline-and-indent) - (local-set-key "\C-j" 'newline) - ))) - '(perl-mode-hook - cperl-mode-hook - java-mode-hook - javascript-mode-hook - c-mode-hook - c++-mode-hook - objc-mode-hook - emacs-lisp-mode-hook - lisp-mode-hook - yatex-mode-hook - css-mode-hook - scheme-mode-hook)) +;(mapcar (lambda (hook) +; (add-hook hook +; (lambda () +; (local-set-key "\C-m" 'newline-and-indent) +; (local-set-key "\C-j" 'newline) +; ))) +; '(perl-mode-hook +; cperl-mode-hook +; java-mode-hook +; javascript-mode-hook +; c-mode-hook +; c++-mode-hook +; objc-mode-hook +; emacs-lisp-mode-hook +; lisp-mode-hook +; yatex-mode-hook +; css-mode-hook +; scheme-mode-hook)) ;; Setting for Packages -------------------------------------------------------- (defun require-if-present (feature) @@ -69,32 +106,125 @@ (require feature) (file-error (if (equal (cadr e) "Cannot open load file") - nil ; ignore + (message "Warning: feature %s is absent" feature) ; warn and ignore + (apply 'signal (car e) (cdr e)))))) ; rethrow + +(defun load-if-present (file) + (condition-case e + (load file) + (file-error + (if (equal (cadr e) "Cannot open load file") + (message "Warning: file named %s is absent" file) ; warn and ignore (apply 'signal (car e) (cdr e)))))) ; rethrow (defun load-file-if-present (path) (if (file-exists-p path) - (load-file path))) + (load-file path) + (message "Warning: file %s is absent" path))) + +;; session +(require-if-present 'session) ;; flyspell (require-if-present 'flyspell) +;; ditz +(require-if-present 'ditz) + +;; jaspace +(require-if-present 'jaspace) + +;; color-theme +(require-if-present 'color-theme) +(if (featurep 'color-theme) + (progn + (color-theme-initialize) + (color-theme-subtle-hacker))) + +;; auto-complete +(require-if-present 'auto-complete-config) +(if (featurep 'auto-complete-config) + (progn + (add-to-list 'ac-dictionary-directories + "/usr/pkg/share/emacs/site-lisp/auto-complete/ac-dict") + (mapcar (lambda (mode) + (add-to-list 'ac-modes mode)) + '(autoconf-mode + erlang-mode + sql-mode)) + (setq ac-modes (remove 'css-mode ac-modes)) + (add-hook 'erlang-mode-hook + (lambda () + (add-to-list 'ac-sources 'ac-source-semantic))) + (ac-config-default))) + ;; mic-paren (require-if-present 'mic-paren) -(paren-activate) +(if (featurep 'mic-paren) + (paren-activate)) ;; elscreen (load "elscreen" "ElScreen" t) (require-if-present 'elscreen-w3m) +;; undo-tree +(require-if-present 'undo-tree) +(if (featurep 'undo-tree) + (global-undo-tree-mode)) + ;; MPC ;(require-if-present 'mpc-autoloads) -;; cedet -(load-file-if-present "/usr/pkg/share/emacs/site-lisp/cedet/common/cedet.el") +;; rst-mode +(autoload 'rst-mode "rst" + "mode for editing reStructuredText documents" t) +(setq auto-mode-alist + (append '(("\\.rst$" . rst-mode) + ("\\.rest$" . rst-mode)) auto-mode-alist)) + +;; lua-mode +(autoload 'lua-mode "lua-mode" "Lua editing mode." t) +(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode) auto-mode-alist) + +;; twittering-mode +(require-if-present 'twittering-mode) +(setq twittering-username "phonohawk") + +;; riece +(autoload 'riece "riece" "Start Riece" t) +(add-hook 'riece-after-load-startup-hook + #'(lambda () + (add-to-list 'riece-addons 'riece-alias) + (add-to-list 'riece-addons 'riece-skk-kakutei) + (add-to-list 'riece-addons 'riece-keyword) + (add-to-list 'riece-addons 'riece-ctlseq))) ;; ecb (require-if-present 'ecb-autoloads) +(let* ((hosts '(("netbsd." . + (("~/sandbox/yxmimeproc" "yxmimeproc") + ("~/sandbox/YxMIME" "YxMIME.pm") + )) + ("g1.cuenote.jp" . + (("~/sandbox/MR/engine/libycom" "libycom") + )) + ("aria.cielonegro.org" . + (("~/sandbox/_web-app/Rakka" "Rakka") + ("~/sandbox/_haskell/Lucu" "Lucu") + ("~/sandbox/_web-app/Kirschbaum" "Kirschbaum") + ("~/sandbox/_haskell/HsOpenSSL" "HsOpenSSL") + ("~/sandbox/_haskell/HsHyperEstraier" "HsHyperEstraier") + ("~/sandbox/_haskell/HsSVN" "HsSVN") + ("~/sandbox/_game/RoRo" "RoRo") + ("~/sandbox/_haskell/HXT" "HXT") + ("~/sandbox/_haskell/hxt-compile" "hxt-compile") + ("~/src/ghc-6.10.1" "ghc-6.10.1") + ("~/sandbox/sugar" "sugar") + ("~/sandbox/_haskell/dns" "dns") + ("~/sandbox/_haskell/blackboard-ddns" "blackboard-ddns") + )))) + (paths (cdr (assoc (system-name) hosts)))) + (setq ecb-source-path paths)) ;; leim (require-if-present 'gaelic) @@ -129,7 +259,7 @@ (setq sokoban-playerfiles-dir "/usr/local/var/games/emacs-sokoban") ;; nXML -(load "/usr/pkg/share/emacs/site-lisp/nxml-mode/rng-auto.el") +(load-file-if-present "/usr/pkg/share/emacs/site-lisp/nxml-mode/rng-auto.el") (defalias 'xml-mode 'nxml-mode) (add-to-list 'auto-mode-alist '("\\.xml$" . nxml-mode)) (add-to-list 'auto-mode-alist '("\\.xi$" . nxml-mode)) @@ -152,14 +282,16 @@ (inf-ruby-keys) )) -;; Tramp -(setq tramp-default-method "ssh") - ;; Haskell -(autoload 'haskell-mode "haskell-mode" - "Major mode for editing Haskell scripts." t) -(autoload 'literate-haskell-mode "haskell-mode" - "Major mode for editing literate Haskell scripts." t) +(load-if-present "haskell-site-file.el") + +(autoload 'run-haskell "inf-haskell" "" t) +(autoload 'switch-to-haskell "inf-haskell" "" t) +(autoload 'inferior-haskell-load-file "inf-haskell" "" t) +(autoload 'inferior-haskell-type "inf-haskell" "" t) +(autoload 'inferior-haskell-info "inf-haskell" "" t) +(autoload 'inferior-haskell-find-definition "inf-haskell" "" t) +(autoload 'inferior-haskell-find-haddock "inf-haskell" "" t) (add-to-list 'auto-mode-alist '("\\.hs$" . haskell-mode)) (add-to-list 'auto-mode-alist '("\\.hsc$" . haskell-mode)) @@ -168,18 +300,23 @@ (add-hook 'haskell-mode-hook 'turn-on-haskell-indent) (add-hook 'haskell-mode-hook 'turn-on-haskell-ghci) +(load-if-present "~/sandbox/_input-method/haskell-unicode-input-method/haskell-unicode-input-method") + (add-hook 'haskell-mode-hook + (lambda () (set-input-method "haskell-unicode"))) + + ;; Hoogle (autoload 'hoogle-lookup "hoogle" "Hoogle" t) (global-set-key (kbd "C-c h") 'hoogle-lookup) ;; c-mode (mapcar (lambda (hook) - (add-hook hook - (lambda () (c-set-style "user")))) - '(c-mode-hook - c++-mode-hook - objc-mode-hook - java-mode-hook)) + (add-hook hook + (lambda () (c-set-style "user")))) + '(c-mode-hook + c++-mode-hook + objc-mode-hook + java-mode-hook)) ;; css (autoload 'css-mode "css-mode" "For editing CSS file" t) @@ -200,8 +337,14 @@ (setq cperl-indent-level 4) (setq cperl-indent-parens-as-block t) +;; Erlang +(add-to-list 'load-path "/usr/pkg/lib/erlang/lib/tools-2.6/emacs") +(require-if-present 'erlang-start) +(setq erlang-electric-commands nil) + ;; SKK (require 'skk-autoloads) +(require 'skk-study) (global-set-key "\C-x\C-j" 'skk-mode) (global-set-key "\C-xj" 'skk-auto-fill-mode) (global-set-key "\C-xt" 'skk-tutorial) @@ -239,17 +382,27 @@ (defun memo () (interactive) (add-change-log-entry nil (expand-file-name "~/sync/memo.txt"))) -(define-key ctl-x-map "M" #'memo) +(define-key ctl-x-map "MM" #'memo) (defun depression () (interactive) (add-change-log-entry nil (expand-file-name "~/sync/depression.txt"))) -(define-key ctl-x-map "P" #'depression) +(define-key ctl-x-map "MD" #'depression) (defun plant () (interactive) (add-change-log-entry nil (expand-file-name "~/sync/plant.txt"))) -(define-key ctl-x-map "G" #'plant) +(define-key ctl-x-map "MP" #'plant) + +(defun robinson () + (interactive) + (elscreen-create) + (find-file (expand-file-name "~/sync/good-things.txt")) + (split-window-horizontally) + (next-window) + (find-file (expand-file-name "~/sync/bad-things.txt")) + (next-window)) +(define-key ctl-x-map "MR" #'robinson) ;; Emacs Calc (add-hook 'calc-start-hook @@ -287,19 +440,21 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(Info-additional-directory-list (quote ("/sw/share/info" "/usr/local/info" "/usr/local/share/info"))) + '(ac-ignore-case nil) '(appt-display-format (quote window)) '(appt-message-warning-time 20) '(canlock-password "a14fa4d2601465d55585c291fa8b3943e189e716") '(cleite:auto-refresh-interval nil) '(cleite:measure-srpc-call-time t) + '(completion-ignored-extensions (quote (".svn/" "CVS/" ".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl" ".elc" ".lof" ".glo" ".idx" ".lot" ".dvi" ".fmt" ".tfm" ".pdf" ".class" ".fas" ".lib" ".mem" ".x86f" ".sparcf" ".fasl" ".ufsl" ".fsl" ".dxl" ".pfsl" ".dfsl" ".lo" ".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" ".ky" ".pg" ".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc" ".pyo" ".hi"))) '(cperl-merge-trailing-else nil) '(default-frame-alist (quote ((tool-bar-lines . 0) (menu-bar-lines . 1) (width . 80) (height . 25) (right-fringe) (left-fringe)))) + '(ditz-find-issue-directory-automatically-flag t) '(ecb-add-path-for-not-matching-files (quote (t))) '(ecb-help-info-path "/sw/share/info/ecb.info") '(ecb-layout-name "left14") '(ecb-options-version "2.32") '(ecb-show-sources-in-directories-buffer (quote always)) - '(ecb-source-path (quote (("~/sandbox/_web-app/Rakka" "Rakka") ("~/sandbox/_haskell/Lucu" "Lucu") ("~/sandbox/_web-app/Kirschbaum" "Kirschbaum") ("~/sandbox/_haskell/HsOpenSSL" "HsOpenSSL") ("~/sandbox/_haskell/HsHyperEstraier" "HsHyperEstraier") ("~/sandbox/_haskell/HsSVN" "HsSVN") ("~/sandbox/_game/RoRo" "RoRo") ("~/sandbox/_haskell/HXT" "HXT") ("~/src/ghc-6.8.3" "ghc-6.8.3") ("/Users/admin/sandbox/sugar" "sugar") ("/" "/")))) '(ecb-tip-of-the-day nil) '(ecb-tree-buffer-style (quote ascii-guides)) '(ecb-windows-width 0.2) @@ -314,8 +469,11 @@ '(jabber-resource "emacs") '(jabber-server "jabber.jp") '(jabber-username "phonohawk") + '(jaspace-highlight-tabs t) + '(js2-auto-indent-flag nil) '(js2-basic-offset 4) - '(js2-indent-on-enter-key t) + '(js2-indent-on-enter-key nil) + '(js2-mirror-mode nil) '(js2-use-font-lock-faces t) '(mew-field-spec (quote (("^Resent-\\(From\\|To\\|Cc\\|Date\\)" t mew-face-header-important mew-face-header-important) ("^Subject:$" t mew-face-header-important mew-face-header-subject) ("^From:$" t mew-face-header-important mew-face-header-from) ("^\\(To\\|Apparently-To\\):$" t mew-face-header-important mew-face-header-to) ("^\\(Cc\\|Dcc\\|Bcc\\):$" t mew-face-header-important mew-face-header-to) ("^Newsgroups:$" t mew-face-header-important mew-face-header-to) ("^Date:$" t mew-face-header-important mew-face-header-date) ("^Reply-To:$" t) ("^X-Mailer:$" t) ("^X-Mew:$" t mew-face-header-important mew-face-header-xmew) ("^\\(Received\\|Return-Path\\|Sender\\|Errors-To\\):$" nil) ("^\\(Path\\|Distribution\\|Xref\\):$" nil) ("^NNTP-Posting-" nil) ("^\\(Message-Id\\|Posted\\|In-Reply-To\\|References\\|Precedence\\):$" nil) ("^Delivered-" nil) ("^List-" nil) ("^\\(Mime-Version\\|Lines\\):$" nil) ("^From$" nil) ("^Status:$" nil) ("^Face:$" nil mew-face-header-private mew-face-header-marginal) ("^X-Text-Classification:$" t mew-face-header-important mew-face-header-important) ("^X-POPFile-Link:$" t mew-face-header-important mew-face-body-url) ("^\\(X\\|Original\\)-" nil mew-face-header-private mew-face-header-marginal)))) '(mew-refile-guess-alist (quote (("From:" ("noreply@adc1.apple.com" . "+mm/adc") ("mag2 ID 0000022139" . "+mm/2ch") ("noreply@sourceforge.net" . "+from/sf-net")) ("Subject:" ("w3m-dev" . "+ml/w3m-dev")) ("To:" ("glasgow-haskell-users@haskell.org" . "+ml/ghc-users") ("fink-devel@lists.sourceforge.net" . "+ml/fink-devel")) ("Reply-To:" ("yun@kokonoe.com" . "+mm/kokonoe")) ("Cc:" ("glasgow-haskell-users@haskell.org" . "+ml/ghc-users"))))) @@ -324,16 +482,28 @@ '(mew-summary-form (quote (type (5 date) " " (14 from) " " t (14 x-classification) " " (30 subj) "|" (0 body)))) '(mouse-wheel-progessive-speed nil) '(mouse-wheel-scroll-amount (quote (1 ((shift) . 5) ((control))))) - '(navi2ch-browse-url-browser-function (quote browse-url-with-firefox)) - '(navi2ch-mona-face-variable (quote navi2ch-mona16-face)) + '(navi2ch-browse-url-browser-function (quote browse-url-firefox)) + '(navi2ch-display-splash-screen nil) + '(navi2ch-list-moved-board-alist (quote (("http://mamono.2ch.net/ihou/" . "http://hideyoshi.2ch.net/ihou/")))) + '(navi2ch-mona-face-variable (quote navi2ch-mona12-face)) '(navi2ch-mona-on-message-mode t) '(newsticker-html-renderer (quote w3m-region)) '(newsticker-url-list nil) '(newsticker-url-list-defaults (quote (("slashdot" "http://slashdot.org/index.rss" nil 3600)))) '(nxml-auto-insert-xml-declaration-flag t) '(nxml-slash-auto-complete-flag t) + '(rcirc-server-alist (quote (("irc1.ymir.jp" :nick "PHO`cons" nil nil)))) + '(riece-layout "default") + '(riece-layout-alist (quote (("middle-right" riece-configure-windows right middle) ("middle-left" riece-configure-windows left middle) ("top-right" riece-configure-windows right top) ("top-left" riece-configure-windows left top) ("bottom-right" riece-configure-windows right bottom) ("bottom-left" riece-configure-windows left bottom) ("top" riece-configure-windows-top) ("spiral" riece-configure-windows-spiral) ("default" . "middle-right")))) + '(riece-others-buffer-mode nil) '(rng-schema-locating-files (quote ("schemas.xml" "/sw/share/schema/schemas.xml" "~/share/nxml/schemas.xml"))) + '(rst-level-face-base-light 50) '(safe-local-variable-values (quote ((todo-categories "Todo" "Todo" "Todo" "Todo")))) + '(session-use-package t nil (session)) + '(tramp-auto-save-directory "/tmp/tramp-auto-save") + '(tramp-completion-reread-directory-timeout 2) + '(tramp-default-host "localhost") + '(tramp-default-method "sshx") '(w3m-bookmark-file-coding-system (quote utf-8)) '(w3m-coding-system (quote utf-8)) '(w3m-coding-system-priority-list (quote (utf-8))) @@ -354,4 +524,8 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(flyspell-incorrect ((t (:foreground "OrangeRed" :overline t)))) + '(jaspace-highlight-tab-face ((((class color) (background dark)) (:foreground "gray70" :underline t)))) + '(navi2ch-bm-new-unread-face ((t (:foreground "PaleGreen" :weight bold)))) + '(navi2ch-bm-updated-cache-face ((t (:foreground "CornflowerBlue" :weight bold)))) + '(navi2ch-bm-updated-unread-face ((t (:foreground "DarkSeaGreen3" :weight bold)))) '(which-func-face ((t (:background "black" :foreground "dark orange")))))