; Copyright (C) 2011 by Hiroki Yamamoto; last updated : 2014/03/10-15:08:54;; -----------------------------[ `Load-Path' ]------------------------------ ;;(setq load-path (append '("~/site-lisp" "~/site-lisp/emacs-w3m-master" "~/site-lisp/twittering-mode-3.0.0"; "~/site-lisp/malabar-1.5-SNAPSHOT/lisp" ) load-path));; -------------------------------------------------------------------------- ;;;; --------------------------[ `日本語入力の設定' ]-------------------------- ;;(require 'kkc)(require 'quail)(define-key kkc-keymap "\C-h" 'kkc-cancel)(define-key quail-conversion-keymap (kbd "C-h") 'quail-conversion-backward-delete-char);; -------------------------------------------------------------------------- ;;;; -----------------------------[ `Face-Color' ]----------------------------- ;;;; background(set-face-background 'default "black") ; 背景(set-face-background 'cursor "snow") ; カーソル(set-face-background 'tooltip "show") ; ツール(set-face-background 'region "DeepSkyBlue3") ; 選択範囲(set-face-background 'modeline "black") ; モードライン;; foreground(set-face-foreground 'default "snow") ; 文字(set-face-foreground 'tooltip "black") ; ツール(set-face-foreground 'region "snow") ; 選択範囲(set-face-foreground 'modeline "snow") ; モードライン;; 透過(set-frame-parameter (selected-frame) 'alpha '(80 80));; -------------------------------------------------------------------------- ;;;; ------------------------[ `Japanese-Environment' ]------------------------ ;;(set-language-environment "Japanese")(set-default-coding-systems 'utf-8-unix)(set-terminal-coding-system 'utf-8-unix)(set-buffer-file-coding-system 'utf-8-unix)(set-keyboard-coding-system 'utf-8-unix)(set-clipboard-coding-system 'utf-8-unix)(setq file-name-coding-system 'utf-8-unix)(modify-coding-system-alist 'file "\\.c\\'" 'utf-8-unix) ; 文字化け対策(modify-coding-system-alist 'file "\\.h\\'" 'utf-8-unix) ; 文字化け対策;(modify-coding-system-alist 'file "\\.tex\\'" 'euc-jp) ; texlive2012以前;; -------------------------------------------------------------------------- ;;;; ----------------------------[ `Font-Setting' ]---------------------------- ;;;; Inconsolata & Takao-gothic;(add-to-list 'default-frame-alist '(font . "Inconsolata-12"));(set-default-font "Inconsolata-12");(set-frame-font "Inconsolata-12");(set-face-font 'variable-pitch "Inconsolata-12");(set-fontset-font (frame-parameter nil 'font); 'japanese-jisx0208; '("Takaoゴシック" . "unicode-bmp"));; Ricty(set-frame-font "ricty-12");; -------------------------------------------------------------------------- ;;;; ---------------------------[ `Frame-Setting' ]---------------------------- ;;;; 初期フレーム(setq initial-frame-alist (append (list '(top . 000) '(left . 600) '(height . 058) '(width . 162) '(alpha . (80 80)) '(font . "ricty-12") ) initial-frame-alist));; 新規フレーム(setq default-frame-alist initial-frame-alist)(setq default-frame-alist (append (list '(top . 000) '(left . 1300) '(height . 058) '(width . 081) '(alpha . (80 80)) '(font . "ricty-12") ) default-frame-alist));; -------------------------------------------------------------------------- ;;;; ---------------------------[ `window-setting' ]--------------------------- ;;(setq compilation-window-height 4) ; compile で表示は 4行(setq compilation-scroll-output t) ; コンパイル時に出力を追って表示する(setq Completions-window-height 7) ; Completions で表示は 7行(有効?);; -------------------------------------------------------------------------- ;;;; -------------------------[ `Minibuffer-Setting' ]------------------------- ;;;; 日付, 時刻表示(setq display-time-24hr-format t) ; 24時間表示(setq display-time-format "%m/%d(%a) %R") ; フォーマット(setq display-time-day-and-date t)(display-time);; 行, 桁番号(line-number-mode t) ; 行番号(column-number-mode t) ; 桁番号(column-number-mode 1) ; 列数表示;; 履歴を `C-p' と `C-n' で辿る(define-key minibuffer-local-must-match-map "\C-p" 'previous-history-element)(define-key minibuffer-local-must-match-map "\C-n" 'next-history-element)(define-key minibuffer-local-completion-map "\C-p" 'previous-history-element)(define-key minibuffer-local-completion-map "\C-n" 'next-history-element)(define-key minibuffer-local-map "\C-p" 'previous-history-element)(define-key minibuffer-local-map "\C-n" 'next-history-element);; -------------------------------------------------------------------------- ;;;; ------------------------------[ `setting' ]------------------------------- ;;(setq frame-title-format '("" "%b @ Emacs " emacs-version)) ; タイトルバー;(setq frame-title-format (format "emacs: %%b" (system-name))) ; タイトルバー(set-scroll-bar-mode 'nil) ; スクロールバーの位置(tool-bar-mode 'nil) ; ツールバーの位置(menu-bar-mode 't) ; メニューバーの表示(setq inhibit-startup-screen -1) ; スタートアップスクリーンを非表示;(setq initial-scratch-message t) ; scratchの初期メッセージの表示(setq x-select-enable-clipboard t) ; クリップボード連携(auto-image-file-mode t) ; 画像ファイルを表示する(setq text-mode-hook '(lambda () (auto-fill-mode 0))) ; fill 無効:0, 有効:1(setq-default fill-column 80) ; fill-column;(setq initial-buffer-choice nil);(setq major-mode 'text-mode);(setq initial-major-mode 'text-mode);; 範囲選択(pc-selection-mode) ; Shift +(cua-mode t) ; 矩形選択(setq cua-enable-cua-keys nil) ; 矩形選択時のコマンド?;; タブ文字はスペース2文字(setq-default indent-tabs-mode nil) ; タブをスペースとして扱う(setq-default tab-width 2);(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60; 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120));; 括弧関係(setq blink-matching-paren t) ; かっこ合せ(setq blink-matching-delay 0.2) ; かっこを合せる時間(setq blink-matching-paren-distance 30000) ; かっこ合せの最大文字間(show-paren-mode 1) ; 対応する括弧に色付け;; バックアッップ(setq backup-inhibited t) ; バックアップファイルを作らない(setq make-backup-files nil) ; バックアップファイルを生成しないようにする(setq auto-save-default nil) ; オートセーブファイルを生成しない(はず……);; オートセーブ(setq delete-auto-save-files t) ; 終了時にオートセーブファイルを消す(setq auto-save-list-file-name nil auto-save-list-file-prefix nil) ; don't make ~/.save-* filbbes(fset 'yes-or-no-p 'y-or-n-p) ; `y' for `yes', `n' for `no';; -------------------------------------------------------------------------- ;;;; -----------------------------[ `Key-Config' ]----------------------------- ;;(global-set-key "\C-m" 'newline-and-indent) ; 改行+オートインデント(global-set-key "\C-h" 'backward-delete-char) ; バックスペース(global-set-key "\M-?" 'help-for-help) ; help(global-set-key "\C-xp" (lambda () (interactive) (other-window -1))) ; 前ウィンドウに移動;(global-set-key "\C-\M-v" 'scroll-other-window) ; 1画面進む;(global-set-key [C-M-S-v] 'scroll-other-window-down) ; 1画面戻る(global-set-key "\M-i" 'skk-annotation-lookup-region-or-at-point) ; 注釈(define-key esc-map "c" 'compile) ; compile(define-key esc-map "@" 'copyright) ; copyright(define-key esc-map "g" 'goto-line) ; goto-line(define-key esc-map "p" 'twit) ; twittering-mode(define-key esc-map "s" 'shell) ; shell(define-key esc-map "n" 'gdb) ; gdb(define-key esc-map "[" 'w3m) ; w3m(define-key esc-map "]" 'doc-view) ; doc-view;; ウィンドウ移動(Shift+十字)(windmove-default-keybindings);; coment - uncoment;(global-set-key "\C-x;" 'comment-region) ; [C-x ;]でコメントアウト;(fset 'uncomment-region "\C-u\C-[xcomment-region\C-m") ;;(global-set-key "\C-x:" 'uncomment-region) ; [C-x :]でコメントをはずす;; shell options(add-hook 'comint-output-filter-functions ; パスワードの入力を隠す 'comint-watch-for-password-prompt) ;(autoload 'ansi-color-for-comint-mode-on "ansi-color" ; エスケープシーケンスを処理する "Set `ansi-color-for-comint-mode' to t." t)(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on);; -------------------------------------------------------------------------- ;;;; ----------------------------[ `SKK-Setting' ]----------------------------- ;;;; 変換候補(setq skk-show-inline nil) ; 変換候補をインラインに表示(setq skk-show-tooltip t) ; 変換候補をツールチップに表示(setq skk-show-candidates-always-pop-to-buffer nil) ; 変換候補を新バッファに表示;; 辞書(setq skk-large-jisyo "~/.skk-jisyo.mine") ; メイン辞書;(setq skk-extra-jisyo-file-list ; メイン辞書以外の辞書; (list ""; ""))(setq skk-tut-file "~/skk.tut") ; チュートリアル(setq skk-previous-candidate-keys (list "x" "\C-p")) ; 前候補/前候補群に戻る操作(setq skk-sticky-key ";") ; sticky shiftを用いる(setq skk-japanese-message-and-error t) ; メッセージは日本表示(setq skk-version-codename-ja t) ; skk-version を日本語で表示(setq skk-status-indicator 'left) ; モードライン上の表示を変更 'minor-mode ⇒ マイナーモード(setq skk-show-japanese-menu t) ; メニューバーの表示言語 nil ⇒ 英語;; 注釈(setq skk-show-annotation t) ; 表示 '(not list) '(not minibuf) '(not list minibuf)(setq skk-annotation-delay 0) ; 表示するまでの遅延を秒で指定(setq skk-annotation-show-as-message t) ; 表示の仕方 nil ⇒ 別ウィンドウ(setq skk-verbose t) ; 変換前/変換中にエコーエリアに冗長なメッセージを表示;; tooltip のルックスの指定(when skk-show-tooltip (setq skk-tooltip-parameters '((background-color . "black") (border-color . "black") (foreground-color . "snow") (internal-border-width . 0) )) (setq skk-tooltip-x-offset -6) (setq skk-tooltip-y-offset 48) (setq skk-tooltip-mouse-behavior 'avoid-mmaybe));; candidates-always-pop-to-buffer のルックスの指定(when skk-show-candidates-always-pop-to-buffer (setq skk-candidate-buffer-background-color "gray90"));; inline のルックスの指定(when skk-show-inline (setq skk-inline-show-face nil) ; nilに設定すると自前で色を設定可能? (setq skk-inline-show-background-color "gray15"))(setq skk-show-icon nil) ; モードラインに SKK アイコンを表示;; 基本的なユーザ・インターフェース(setq skk-egg-like-newline t) ; 変換時,改行でも確定(setq skk-delete-implies-kakutei nil) ; BSで確定しないで前候補を表示(setq skk-auto-insert-paren t) ; "「"を入力したら"」"も自動で挿入(setq skk-undo-kakutei-word-only nil) ; アンドゥ情報を記録しない. nil ⇒ する(setq-default skk-kutouten-type 'en) ; 句読点に`.', `,' を使う(setq skk-comp-circulate t) ; 見出し語の補完を行う際の候補の表示順(setq skk-previous-completion-use-backtab t) ; S-Tab 見出し語の補完動作を無効化 t ⇒ 有効(setq skk-dcomp-activate t) ; 動的自動補完機能(setq skk-dcomp-multiple-activate t ; 動的補完で候補を複数表示 skk-dcomp-multiple-rows 10)(setq skk-henkan-strict-okuri-precedence t) ; 送り仮名が厳密に正しい候補を優先して表示(setq skk-check-okurigana-on-touroku 'auto) ; 辞書登録時、余計な送り仮名を送らない(require 'skk-study) ; 変換の学習(setq skk-preload t) ; 読み込みを Emacs の起動時に済ませる(global-set-key "\C-z" 'skk-mode) ; C-zでSKK(\C-\\でも)(setq skk-number-style nil) ; @で挿入する日付表示を半角に;; 自動起動(add-hook 'lisp-interaction-mode-hook '(lambda() (progn (eval-expression (skk-mode) nil)))) ; lisp-interaction-mode(add-hook 'find-file-hook '(lambda() (progn (eval-expression (skk-mode) nil)))) ; find-fileで skk-mode(add-hook 'minibuffer-setup-hook '(lambda() (progn (eval-expression (skk-mode) nil) (skk-latin-mode (point)) ; skk-latin-mode でアルファベット入力にしておく (minibuffer-message "") ; 「nil」と表示させないために, 空文字を表示 ))) ; ミニバッファ上でskk-mode(add-hook 'twittering-edit-mode-hook '(lambda() (progn (eval-expression (skk-mode) nil)))) ; twittering-mode-hookで skk-mode(add-hook 'shell-mode-hook '(lambda() (progn (eval-expression (skk-mode) nil)))) ; twittering-mode-hookで skk-mode;; -------------------------------------------------------------------------- ;;;; ---------------------------[ `Yatex-Setting' ]---------------------------- ;;(setq auto-mode-alist (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t);; [C-c C-t] コマンド(setq tex-command "platex") ; [C-c C-t j](setq dvi2-command "xdvi") ; [C-c C-t p] , "pxdvi"(setq dviprint-command-format "dvips -f1 %s | lpr") ; [C-c C-t l](setq bibtex-command "pbibtex");; 文字コード(setq YaTeX-kanji-code 4) ; 1:Shift_JIS, 2:ISO-2022-JP, 3:EUC-JP, 4:UTF-8(setq YaTeX-latex-message-code 'utf-8-unix);; オートフィル(defvar YaTeX-fill-column 100 "*fill-column used for auto-fill-mode.") ; フィルの文字数(add-hook 'yatex-mode-hook '(lambda () (auto-fill-mode 1))) ; フィルモード;; bibtex 関係(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode(add-hook 'Latex-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode(add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode;; もし比較的新しい reftex-mode 環境を利用している(add-hook 'yatex-mode-hook '(lambda () (reftex-mode 1) (define-key reftex-mode-map (concat YaTeX-prefix "<") 'YaTeX-comment-region) (define-key reftex-mode-map (concat YaTeX-prefix ">") 'YaTeX-uncomment-region)));;; TeX-master に関しては safe にする;;; from AUCTeX tex.el(put 'TeX-master 'safe-local-variable (lambda (x) (or (stringp x) (member x (quote (t nil shared dwim))))));;RefTeX tocを左側に(setq reftex-toc-split-windows-horizontally t);; yatexの細かい設定(add-hook 'yatex-mode-hook '(lambda () (setq comment-style 'extra-line) ; extra-lineコメント ));; -------------------------------------------------------------------------- ;;;; ----------------------------[ `Smart-Compile']---------------------------- ;;(require 'smart-compile)(global-set-key "\C-cc" 'smart-compile)(define-key menu-bar-tools-menu [compile] '("Compile..." . smart-compile));; -------------------------------------------------------------------------- ;;;; ---------------------------[ `署名と更新日時' ]--------------------------- ;;;; Time stamp(ファイル更新日)(require 'time-stamp)(add-hook 'before-save-hook 'time-stamp)(setq time-stamp-active t)(setq time-stamp-start "last updated : ")(setq time-stamp-format "%04y/%02m/%02d-%02H:%02M:%02S")(setq time-stamp-end " \\|$");; 署名の表示(add-hook 'write-file-funktions 'copyright-update) ; $ORGANIZATION に登録;; -------------------------------------------------------------------------- ;;;; ------------------------[ `文末分かりやすくする' ]------------------------ ;;;; フリジング(setq-default indicate-empty-lines t) ; フリジング上にマークを表示(setq-default indicate-buffer-boundaries 'left) ; 右に'↑','↓','「','」'(setq-default indicate-buffer-boundaries 'right) ; 左に`-';; 行番号の表示;(global-linum-mode t)(setq linum-format "%3d")(global-set-key [f6] 'linum-mode);; [EOF] の表示(defun set-buffer-end-mark() (let ((overlay (make-overlay (point-max) (point-max)))) (overlay-put overlay 'before-string #("[EOF]" 0 5 (face highlight))) (overlay-put overlay 'insert-behind-hooks '((lambda (overlay after beg end &optional len) (when after (move-overlay overlay (point-max) (point-max))))))))(add-hook 'find-file-hooks 'set-buffer-end-mark);; -------------------------------------------------------------------------- ;;;; ---------------------------[ `スクロール関係' ]--------------------------- ;;;; スクロールマウスの設定(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down 1)))(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up 1)))(global-set-key [S-mouse-4] '(lambda () (interactive) (scroll-down 1))) ;shift(global-set-key [S-mouse-5] '(lambda () (interactive) (scroll-up 1))) ;shift(global-set-key [C-mouse-5] '(lambda () (interactive) (scroll-up (/ (window-height) 2)))) ;ctrl(global-set-key [C-mouse-4] '(lambda () (interactive) (scroll-down (/ (window-height) 2)))) ;ctrl;; スクロールを一行ずつにする(setq scroll-step 1);; 画面内の一番下のときスクロールは1行のみで(setq scroll-conservatively 100 scroll-margin 0 scroll-step 1)(setq next-screen-context-lines 1);; -------------------------------------------------------------------------- ;;;; ---------------------------[ `Flyspell-Mode' ]---------------------------- ;;(setq flyspell-issue-welcome-flag nil);(setq-default ispell-program-name "aspell");(eval-after-load "ispell" '(add-to-list 'ispell-skip-region-alist '("[^\000~377]+")));(add-hook 'yatex-mode-hook 'flyspell-mode);(custom-set-variables '(flyspell-auto-correct-binding [(control ?\:)]));; -------------------------------------------------------------------------- ;;;; ---------------------------[ `Comment-Style' ]---------------------------- ;;(defvar comment-style '((plain . (nil nil nil nil)) (indent . (nil nil nil t)) (indent-or-triple . (nil nil nil multi-char)) (aligned . (nil t nil t)) (multi-line . (t nil nil t)) (extra-line . (t nil t t)) (box . (nil t t t)) (box-multi . (t t t t)) ))(setq comment-style 'box-multi);; -------------------------------------------------------------------------- ;;;; ------------------------------[ `CC-Mode' ]------------------------------- ;;(require 'cc-mode);; Default(add-hook 'c-mode-common-hook '(lambda () ));; C(add-hook 'c-mode-hook '(lambda () (setq c-default-style "linux" ) ; linux, k&r, bsd, gnu (setq c-basic-offset 2 indent-tabs-mode nil) ; インデントは2桁のスペース (c-toggle-hungry-state 1) ; hungry-deletion ;(c-toggle-auto-hungry-state 0) ; ';' を入力したら、自動改行+インデント (define-key c-mode-base-map "\C-m" 'newline-and-indent) ; 改行+インデント (hs-minor-mode 1) ; hide-show mode (flyspell-prog-mode) ; flyspell-prog-mode をオンにする (font-lock-mode t) ; キーワードなどのハイライト ));; Java(add-hook 'java-mode-hook '(lambda () (setq c-default-style "linux") (setq c-basic-offset 2 indent-tabs-mode nil) (c-toggle-hungry-state 1) ;(c-toggle-auto-hungry-state 0) (define-key c-mode-base-map "\C-m" 'newline-and-indent) (font-lock-mode t) (flyspell-prog-mode) )); comment-style @ Java-mode(add-hook 'java-mode-hook '(lambda () (setq comment-start "/** " comment-continue " * " comment-end " */") (setq comment-style 'extra-line) (define-key java-mode-map "/" 'self-insert-command) ));; -------------------------------------------------------------------------- ;;;; ---------------------------[ `Google-C-Style' ]--------------------------- ;;(require 'google-c-style);; -------------------------------------------------------------------------- ;;;; --------------------------[ `Twittering-Mode' ]--------------------------- ;;(require 'twittering-mode)(setq twittering-allow-insecure-server-cert t)(autoload 'twit "twittering-mode" nil t) ; わからん?(setq twittering-auth-method 'oauth)(setq twittering-use-master-password t) ; マスターパスワード使用(setq twittering-use-ssl t) ; 暗号化を保存?(setq twittering-icon-mode t) ; アイコンモード(setq twittering-time-interval 30) ; タイムラインの更新(setq twittering-url-show-status t) ; アイコン取得時の情報表示を抑制するか(setq twittering-icon-storage-limit t) ; 全てのアイコンを保存するか(setq twittering-initial-timeline-spec-string '(":replies" ":favorites" ":retweets_of_me" ":home" "tatsunaga/friends" ));(setq twittering-username "*****") ; your twitter id;(setq twittering-password "*****") ; your password;(setq twiitering-jojo-mode nil) ; JOJOモード;; プロキシ関係(setq twittering-proxy-use t) ; プロキシ有効(setq twittering-proxy-server "163.51.138.80") ; プロキシの詳細(setq twittering-proxy-port 3128) ; ポートの詳細;(setq twittering-proxy-user "") ; プロキシのユーザ;(setq twittering-proxy-password "") ; プロキシpassword;; フォーマット(setq twittering-status-format "%i %s/%S, %@:\n%R\n %FILL{%T}\n\nfrom %f%L\n");; 公式モード(というか公式のショートカット)(define-key twittering-mode-map (kbd "Q") 'twittering-organic-retweet) ; 引用リツイート(define-key twittering-mode-map (kbd "F") 'twittering-favorite) ; お気に入りに登録(define-key twittering-mode-map (kbd "R") 'twittering-enter) ; 返信?(define-key twittering-mode-map (kbd "T") 'twittering-native-retweet) ; リツイート(define-key twittering-mode-map (kbd "M") 'twittering-direct-message) ; DM(define-key twittering-mode-map (kbd "N") 'twittering-update-status-interactive) ; ツイート(define-key twittering-mode-map (kbd ".") 'twittering-current-timeline) ; 更新(define-key twittering-mode-map (kbd "C-c C-f") 'twittering-home-timeline) ; HOME;; face-color(defun twittering-mode-hook-func () (set-face-bold-p 'twittering-username-face t) (set-face-foreground 'twittering-username-face "DeepSkyBlue3") (set-face-foreground 'twittering-uri-face "Orange") )(add-hook 'twittering-mode-hook 'twittering-mode-hook-func);; -------------------------------------------------------------------------- ;;;; -----------------------------[ `emacs-w3m' ]------------------------------ ;;(require 'w3m-load);(setq w3m-use-cookies t);(setq w3m-command-arguments-alist; '(; ローカルにはプロキシを使わない; ("^http://\\([^/]*\\.\\)*example\\.co\\.jp\\(/\\|$\\)"; "-no-proxy"); ; 他はプロキシ経由; (""; "-o" "http_proxy=http://163.51.138.80:3128/")));; -------------------------------------------------------------------------- ;;;; ------------------------------[ `DocView' ]------------------------------- ;;(require 'doc-view)(define-key doc-view-mode-map "j" 'scroll-up)(define-key doc-view-mode-map "k" 'scroll-down)(define-key doc-view-mode-map "h" 'scroll-left)(define-key doc-view-mode-map "l" 'scroll-right)(define-key doc-view-mode-map "n" 'doc-view-next-page)(define-key doc-view-mode-map "p" 'doc-view-previous-page)(define-key doc-view-mode-map "K" 'doc-view-kill-buffer);(custom-set-variables '(doc-view-continuous t));(custom-set-faces )(add-hook 'doc-view-mode-hook 'auto-revert-mode)(setq doc-view-continuous t);; -------------------------------------------------------------------------- ;;;; ----------------------------[ `Malabar-Mode' ]---------------------------- ;;;(require 'cedet);;(semantic-liad-enable-minimun-features) ; or enable more if you wish;(require 'malabar-mode);(setq malabar-groovy-lib-dir "~/site-lisp/malabar-1.5-SNAPSHOT/lib");(add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode));; -------------------------------------------------------------------------- ;;