| 1 | ;;; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*- |
|---|
| 2 | ;; MATSUNO Tokuhiro. |
|---|
| 3 | |
|---|
| 4 | ;; Note. |
|---|
| 5 | ;; どうやら、require しているものたちは別途用意する必要があるっぽい。 |
|---|
| 6 | |
|---|
| 7 | ;; ############################################################## |
|---|
| 8 | ;; 基本的な設定。 |
|---|
| 9 | ;; ############################################################## |
|---|
| 10 | |
|---|
| 11 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 12 | ;;; マクロサーチパスの追加 |
|---|
| 13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 14 | |
|---|
| 15 | (setq load-path |
|---|
| 16 | (append '("~/elisp" |
|---|
| 17 | "/usr/local/share/emacs/site-lisp/" |
|---|
| 18 | "/usr/share/emacs/site-lisp/howm/" |
|---|
| 19 | "/usr/share/emacs/site-lisp/w3m/" |
|---|
| 20 | ) |
|---|
| 21 | load-path)) |
|---|
| 22 | |
|---|
| 23 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 24 | ;; ~/bin に PATH を通す & exec-path に追加 |
|---|
| 25 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 26 | (progn |
|---|
| 27 | (setenv "PATH" (concat "~/bin:" (getenv "PATH"))) |
|---|
| 28 | (add-to-list 'exec-path "~/bin")) |
|---|
| 29 | |
|---|
| 30 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 31 | ;; utf-8 |
|---|
| 32 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 33 | (progn |
|---|
| 34 | (set-language-environment "Japanese") |
|---|
| 35 | (set-terminal-coding-system 'utf-8) |
|---|
| 36 | (set-keyboard-coding-system 'utf-8) |
|---|
| 37 | (set-buffer-file-coding-system 'utf-8) |
|---|
| 38 | (setq default-buffer-file-coding-system 'utf-8) |
|---|
| 39 | (set-default-coding-systems 'utf-8)) |
|---|
| 40 | |
|---|
| 41 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 42 | ;; misc. |
|---|
| 43 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 44 | (tool-bar-mode nil) |
|---|
| 45 | |
|---|
| 46 | ;;; 最下行で「↓」を押したときスムーズなスクロールにする |
|---|
| 47 | (progn |
|---|
| 48 | (setq scroll-step 1) |
|---|
| 49 | (setq scroll-conservatively 4)) |
|---|
| 50 | |
|---|
| 51 | ;;; PageUp,PageDown の時にカーソル位置を保持 |
|---|
| 52 | (setq scroll-preserve-screen-position t) |
|---|
| 53 | |
|---|
| 54 | ;;; マウスの真ん中ボタンでペーストする時にカーソル位置を変更しない |
|---|
| 55 | (setq mouse-yank-at-point t) |
|---|
| 56 | |
|---|
| 57 | ;;; カーソルが行頭にあるときに,C-k 1回で その行全体を削除 |
|---|
| 58 | (setq kill-whole-line t) |
|---|
| 59 | |
|---|
| 60 | ;;; yes,no を答えるかわりに,y,n にする |
|---|
| 61 | (fset 'yes-or-no-p 'y-or-n-p) |
|---|
| 62 | |
|---|
| 63 | ;; backup file を作らない。(.save.. ってやつとか ~ なんとかとか) |
|---|
| 64 | (progn |
|---|
| 65 | (setq auto-save-list-file-name nil) |
|---|
| 66 | (setq auto-save-list-file-prefix nil) |
|---|
| 67 | (setq make-backup-files nil)) |
|---|
| 68 | |
|---|
| 69 | ;;; 起動直後の *scratch* buffer に入る文字列をなくす |
|---|
| 70 | (setq initial-scratch-message nil) |
|---|
| 71 | |
|---|
| 72 | ;;; startup message を消す |
|---|
| 73 | (setq inhibit-startup-message t) |
|---|
| 74 | |
|---|
| 75 | ;; 見た目の設定 |
|---|
| 76 | (progn |
|---|
| 77 | (load "font-lock") ;; 色付ける |
|---|
| 78 | (global-font-lock-mode t) |
|---|
| 79 | (show-paren-mode) ;; 対応する括弧をハイライト |
|---|
| 80 | (menu-bar-mode -1) ;; メニューバーを消す |
|---|
| 81 | (setq transient-mark-mode t) ;; 選択領域を色付け |
|---|
| 82 | (line-number-mode t) ;; カーソルの位置が何行目かを表示する |
|---|
| 83 | (column-number-mode t) ;; カーソルの位置が何桁目かを表示する |
|---|
| 84 | (setq use-dialog-boxes nil) ;; ダイアログボックスを使わない |
|---|
| 85 | (setq mode-line-frame-identification " ") ;; フレーム情報を隠す |
|---|
| 86 | (setq visible-bell t) ;; visible-bell |
|---|
| 87 | ) |
|---|
| 88 | |
|---|
| 89 | ;; .gz なファイルを読めるように |
|---|
| 90 | (auto-compression-mode t) |
|---|
| 91 | |
|---|
| 92 | ;;; shell-mode で ^M を出さなくする. |
|---|
| 93 | (add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t) |
|---|
| 94 | |
|---|
| 95 | ;;; ステータスラインに時間を表示する |
|---|
| 96 | (progn |
|---|
| 97 | (setq display-time-24hr-format t) |
|---|
| 98 | (setq display-time-format "%Y-%m-%d(%a) %H:%M") |
|---|
| 99 | (setq display-time-day-and-date t) |
|---|
| 100 | (setq display-time-interval 30) |
|---|
| 101 | (display-time)) |
|---|
| 102 | |
|---|
| 103 | ;; .h なファイルは C++-mode で. |
|---|
| 104 | (setq auto-mode-alist |
|---|
| 105 | (cons (cons "\\.h$" 'c++-mode) |
|---|
| 106 | auto-mode-alist)) |
|---|
| 107 | |
|---|
| 108 | ;; gauche の設定 |
|---|
| 109 | ;; (progn |
|---|
| 110 | ;; (setq quack-default-program "gosh") |
|---|
| 111 | ;; (setq scheme-program-name "gosh") |
|---|
| 112 | ;; (autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process. " t) |
|---|
| 113 | ;; (require 'inferior-gauche) |
|---|
| 114 | ;; (setq auto-mode-alist |
|---|
| 115 | ;; (cons '("\\.scm$" . inferior-gauche-mode) auto-mode-alist)) |
|---|
| 116 | ;; (setq default-major-mode 'inferior-gauche-mode) |
|---|
| 117 | ;; (inferior-gauche-mode)) |
|---|
| 118 | |
|---|
| 119 | ;; eldoc |
|---|
| 120 | ;; http://www.bookshelf.jp/soft/meadow_41.html#SEC598 |
|---|
| 121 | (autoload 'turn-on-eldoc-mode "eldoc" nil t) |
|---|
| 122 | (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode) |
|---|
| 123 | (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode) |
|---|
| 124 | (add-hook 'ielm-mode-hook 'turn-on-eldoc-mode) |
|---|
| 125 | |
|---|
| 126 | ;; tab width |
|---|
| 127 | (setq tab-width 4) |
|---|
| 128 | |
|---|
| 129 | ;;; key config |
|---|
| 130 | (progn |
|---|
| 131 | (global-set-key "\M-?" 'help-for-help) |
|---|
| 132 | (global-set-key "\M-g" 'goto-line) |
|---|
| 133 | (global-set-key "\C-h" 'backward-delete-char) |
|---|
| 134 | (global-set-key [delete] 'delete-char)) |
|---|
| 135 | |
|---|
| 136 | ;; Emacs 21以降だと Makefile の編集時にTABを打ったときに "Suspicious |
|---|
| 137 | ;; line XXX. Save anyway?" というプロンプトが出るのでこれを抑制する |
|---|
| 138 | (add-hook 'makefile-mode-hook |
|---|
| 139 | (function |
|---|
| 140 | (lambda () (fset 'makefile-warn-suspicious-lines 'ignore)))) |
|---|
| 141 | |
|---|
| 142 | ;;; 140 桁にあわせる |
|---|
| 143 | (progn |
|---|
| 144 | (setq-default fill-column 140) |
|---|
| 145 | (setq text-mode-hook 'turn-on-auto-fill) |
|---|
| 146 | (setq default-major-mode 'text-mode) |
|---|
| 147 | (auto-fill-mode)) |
|---|
| 148 | |
|---|
| 149 | ;;; emacsclient サーバを起動 |
|---|
| 150 | (server-start) |
|---|
| 151 | |
|---|
| 152 | ;; ↓これなんの設定かよくわからん。 |
|---|
| 153 | (put 'upcase-region 'disabled nil) |
|---|
| 154 | (put 'downcase-region 'disabled nil) |
|---|
| 155 | |
|---|
| 156 | ;; タイムロケールを英語に |
|---|
| 157 | (setq system-time-locale "C") |
|---|
| 158 | |
|---|
| 159 | ;; 一般的な設定 |
|---|
| 160 | (load "zatta-settings") |
|---|
| 161 | |
|---|
| 162 | ;; .svn は補完対象から外す |
|---|
| 163 | (add-to-list 'completion-ignored-extensions ".svn/") |
|---|
| 164 | ;; 補完は ignore-case で。 |
|---|
| 165 | (setq completion-ignore-case t) |
|---|
| 166 | |
|---|
| 167 | ;;; X or Mac な時の設定 |
|---|
| 168 | (if (or (eq window-system 'x) (eq window-system 'mac)) |
|---|
| 169 | (progn |
|---|
| 170 | ;; 現在行をハイライト |
|---|
| 171 | (global-hl-line-mode) |
|---|
| 172 | ;; 画像ファイルを表示 |
|---|
| 173 | (auto-image-file-mode) |
|---|
| 174 | ) |
|---|
| 175 | ) |
|---|
| 176 | |
|---|
| 177 | ;; ############################################################## |
|---|
| 178 | ;; マニアックな third party の elisp。debian のパッケージになってない |
|---|
| 179 | ;; ようなもの。 |
|---|
| 180 | ;; ############################################################## |
|---|
| 181 | |
|---|
| 182 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 183 | ;; html-tt(by clouder) |
|---|
| 184 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 185 | (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) |
|---|
| 186 | (setq auto-mode-alist |
|---|
| 187 | (cons |
|---|
| 188 | '("\\.html$" . html-helper-mode) auto-mode-alist)) |
|---|
| 189 | (require 'html-tt) |
|---|
| 190 | (add-hook 'html-helper-mode-hook 'html-tt-load-hook) |
|---|
| 191 | |
|---|
| 192 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 193 | ;; auto-save-buffers |
|---|
| 194 | ;; http://namazu.org/~satoru/misc/auto-save/ |
|---|
| 195 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 196 | (progn |
|---|
| 197 | (require 'auto-save-buffers) |
|---|
| 198 | (run-with-idle-timer 0.5 t 'auto-save-buffers)) |
|---|
| 199 | |
|---|
| 200 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 201 | ;; 強調表示付き動的略称展開 |
|---|
| 202 | ;; http://www.namazu.org/~tsuchiya/elisp/#dabbrev-highlight |
|---|
| 203 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 204 | (require 'dabbrev-highlight) |
|---|
| 205 | |
|---|
| 206 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 207 | ;; occur や grep で別ウィンドウに該当行を表示 |
|---|
| 208 | ;; http://www.bookshelf.jp/soft/meadow_47.html#SEC675 |
|---|
| 209 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 210 | (progn |
|---|
| 211 | (require 'fm) |
|---|
| 212 | (add-hook 'occur-mode-hook 'fm-start) |
|---|
| 213 | (add-hook 'compilation-mode-hook 'fm-start)) |
|---|
| 214 | |
|---|
| 215 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 216 | ;; elscreen |
|---|
| 217 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 218 | (require 'elscreen) |
|---|
| 219 | (require 'elscreen-tab) |
|---|
| 220 | |
|---|
| 221 | ;; ############################################################## |
|---|
| 222 | ;; 以下各種 third party の elisp 関連。 |
|---|
| 223 | ;; ############################################################## |
|---|
| 224 | |
|---|
| 225 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 226 | ;; navi2ch |
|---|
| 227 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 228 | (autoload 'navi2ch "navi2ch" "Navigator for 2ch for Emacs" t) |
|---|
| 229 | (setq navi2ch-mona-enable t) |
|---|
| 230 | (setq navi2ch-mona-enable-board-list '("mona" "aastory" "kao")) |
|---|
| 231 | ;; (setq navi2ch-net-http-proxy "127.0.0.1:3128") |
|---|
| 232 | ;; (setq navi2ch-net-http-proxy nil) |
|---|
| 233 | |
|---|
| 234 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 235 | ;; ddskk |
|---|
| 236 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 237 | |
|---|
| 238 | ;;; SKK-JISYO.L をメモリ上に読み込んで利用する場合 |
|---|
| 239 | ;;(setq skk-large-jisyo "/usr/local/share/skk/SKK-JISYO.L") |
|---|
| 240 | ;;(setq load-path |
|---|
| 241 | ;; (append '("/usr/share/emacs/site-lisp/skk") |
|---|
| 242 | ;; load-path)) |
|---|
| 243 | ; (setq skk-aux-large-jisyo "/usr/share/skk/SKK-JISYO.L") |
|---|
| 244 | (setq skk-server-portnum 1178) |
|---|
| 245 | (setq skk-server-host "localhost") |
|---|
| 246 | ;;(setq skk-server-prog "/usr/libexec/skkserv") |
|---|
| 247 | |
|---|
| 248 | ;; 句読点を ,. にする |
|---|
| 249 | ;;(setq skk-kutouten-type 'en) |
|---|
| 250 | |
|---|
| 251 | (global-set-key "\C-x\C-j" 'skk-mode) |
|---|
| 252 | (global-set-key "\C-xj" 'skk-auto-fill-mode) |
|---|
| 253 | (global-set-key "\C-xt" 'skk-tutorial) |
|---|
| 254 | (autoload 'skk-mode "skk" nil t) |
|---|
| 255 | (autoload 'skk-auto-fill-mode "skk" nil t) |
|---|
| 256 | (autoload 'skk-isearch-mode-setup "skk-isearch" nil t) |
|---|
| 257 | (autoload 'skk-isearch-mode-cleanup "skk-isearch" nil t) |
|---|
| 258 | |
|---|
| 259 | ;; Enter キーを押したときには確定する |
|---|
| 260 | (setq skk-egg-like-newline t) |
|---|
| 261 | ;; 句読点に ., を使う |
|---|
| 262 | ;;(setq skk-kutouten-type 'en) |
|---|
| 263 | ;; 送り仮名が厳密に正しい候補を優先して表示する |
|---|
| 264 | (setq skk-henkan-strict-okuri-precedence t) |
|---|
| 265 | ;; 辞書登録のとき、余計な送り仮名を送らないようにする |
|---|
| 266 | (setq skk-check-okurigana-on-touroku 'auto) |
|---|
| 267 | ;; look コマンドを使った検索をする(これ便利) |
|---|
| 268 | (setq skk-use-look t) |
|---|
| 269 | ;; migemo を使うから skk-isearch にはおとなしくしていて欲しい |
|---|
| 270 | (setq skk-isearch-start-mode 'latin) |
|---|
| 271 | ;; 複数の Emacsen を起動して個人辞書を共有する |
|---|
| 272 | (setq skk-share-private-jisyo t) |
|---|
| 273 | ;;; 西暦で表示 |
|---|
| 274 | (setq skk-date-ad t) |
|---|
| 275 | ;;; 半角数字 |
|---|
| 276 | (setq skk-number-style nil) |
|---|
| 277 | |
|---|
| 278 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 279 | ;;; migemo.el の設定 |
|---|
| 280 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 281 | |
|---|
| 282 | ;; Emacs 側でのキャッシュを有効にする |
|---|
| 283 | (setq migemo-use-pattern-alist t) |
|---|
| 284 | (setq migemo-use-frequent-pattern-alist t) |
|---|
| 285 | (setq migemo-user-dictionary (expand-file-name "~/.migemo-dict")) |
|---|
| 286 | (load "migemo") |
|---|
| 287 | |
|---|
| 288 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 289 | ;; cperl-mode settings |
|---|
| 290 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 291 | |
|---|
| 292 | ;; Use cperl mode instead of the default perl mode |
|---|
| 293 | (defalias 'perl-mode 'cperl-mode) |
|---|
| 294 | |
|---|
| 295 | (setq auto-mode-alist |
|---|
| 296 | (cons (cons "\\.t$" 'cperl-mode) |
|---|
| 297 | auto-mode-alist)) |
|---|
| 298 | |
|---|
| 299 | ;; based on miyagawa's settings |
|---|
| 300 | (add-hook 'cperl-mode-hook |
|---|
| 301 | (lambda () |
|---|
| 302 | (define-key cperl-mode-map "\M-." 'cperl-find-module) |
|---|
| 303 | (define-key cperl-mode-map "\C-ct" 'perltidy-region) |
|---|
| 304 | (define-key cperl-mode-map "\C-m" 'newline-and-indent) |
|---|
| 305 | (setq cperl-auto-newline t) |
|---|
| 306 | ;; Use 4 space indents via cperl mode |
|---|
| 307 | (setq cperl-close-paren-offset -4) |
|---|
| 308 | (setq cperl-indent-level 4) |
|---|
| 309 | (setq cperl-label-offset -4) |
|---|
| 310 | (setq cperl-continued-statement-offset 4) |
|---|
| 311 | (setq cperl-indent-parens-as-block t) |
|---|
| 312 | (setq indent-tabs-mode nil) |
|---|
| 313 | (abbrev-mode 1) |
|---|
| 314 | ;; (setq cperl-invalid-face nil) |
|---|
| 315 | (setq cperl-highlight-variables-indiscriminately t))) |
|---|
| 316 | |
|---|
| 317 | ;; source reindent by perltidy |
|---|
| 318 | (defun perltidy-region () |
|---|
| 319 | "Run perltidy on the current region." |
|---|
| 320 | (interactive) |
|---|
| 321 | (save-excursion |
|---|
| 322 | (shell-command-on-region (point) (mark) "perltidy -q" nil t))) |
|---|
| 323 | |
|---|
| 324 | ;; find perl module's source code |
|---|
| 325 | ;; ref. http://d.hatena.ne.jp/tokuhirom/20060204/1139061383 |
|---|
| 326 | (defun cperl-find-module (module) |
|---|
| 327 | (interactive (list (let* ((default-entry (cperl-word-at-point)) |
|---|
| 328 | (input (read-string |
|---|
| 329 | (format "perldoc entry%s: " |
|---|
| 330 | (if (string= default-entry "") |
|---|
| 331 | "" |
|---|
| 332 | (format " (default %s)" default-entry)))))) |
|---|
| 333 | (if (string= input "") |
|---|
| 334 | (if (string= default-entry "") |
|---|
| 335 | (error "No perldoc args given") |
|---|
| 336 | default-entry) |
|---|
| 337 | input)))) |
|---|
| 338 | (if (string= module "") |
|---|
| 339 | (message "No module name found at this point.") |
|---|
| 340 | (let (perldoc-output exit-status) |
|---|
| 341 | (with-temp-buffer |
|---|
| 342 | (setq exit-status (call-process "perldoc" nil t nil "-lm" module)) |
|---|
| 343 | (goto-char (point-min)) |
|---|
| 344 | (setq perldoc-output (buffer-substring (point-at-bol) |
|---|
| 345 | (point-at-eol)))) |
|---|
| 346 | (if (not (zerop exit-status)) |
|---|
| 347 | (message "No module found for \"%s\"." module) |
|---|
| 348 | (find-file-other-window perldoc-output))))) |
|---|
| 349 | |
|---|
| 350 | (defun cperl-find-module-at-point () |
|---|
| 351 | (interactive) |
|---|
| 352 | (cperl-find-module (cperl-word-at-point))) |
|---|
| 353 | |
|---|
| 354 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 355 | ;; vc-svk |
|---|
| 356 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 357 | (progn |
|---|
| 358 | (load "vc-svk") |
|---|
| 359 | (add-to-list 'vc-handled-backends 'SVK) |
|---|
| 360 | ) |
|---|
| 361 | |
|---|
| 362 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 363 | ;; 括弧を薄くする |
|---|
| 364 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 365 | |
|---|
| 366 | ;; 小括弧 () の色を定義 |
|---|
| 367 | (defvar paren-face 'paren-face) |
|---|
| 368 | (make-face 'paren-face) |
|---|
| 369 | (set-face-foreground 'paren-face "#88aaff") |
|---|
| 370 | |
|---|
| 371 | ;; 中括弧 {} の色を定義 |
|---|
| 372 | (defvar brace-face 'brace-face) |
|---|
| 373 | (make-face 'brace-face) |
|---|
| 374 | (set-face-foreground 'brace-face "#ffaa88") |
|---|
| 375 | |
|---|
| 376 | ;; 大括弧 [] の色を定義 |
|---|
| 377 | (defvar bracket-face 'bracket-face) |
|---|
| 378 | (make-face 'bracket-face) |
|---|
| 379 | (set-face-foreground 'bracket-face "#aaaa00") |
|---|
| 380 | |
|---|
| 381 | ;; lisp-mode の色設定に追加 |
|---|
| 382 | (setq lisp-font-lock-keywords-2 |
|---|
| 383 | (append '(("(\\|)" . paren-face)) |
|---|
| 384 | lisp-font-lock-keywords-2)) |
|---|
| 385 | |
|---|
| 386 | ;; scheme-mode の色設定に追加 |
|---|
| 387 | (add-hook 'scheme-mode-hook |
|---|
| 388 | '(lambda () |
|---|
| 389 | (setq scheme-font-lock-keywords-2 |
|---|
| 390 | (append '(("(\\|)" . paren-face)) |
|---|
| 391 | scheme-font-lock-keywords-2)))) |
|---|
| 392 | |
|---|
| 393 | ;; c-mode の色設定に追加 |
|---|
| 394 | (setq c-font-lock-keywords-3 |
|---|
| 395 | (append '(("(\\|)" . paren-face)) |
|---|
| 396 | '(("{\\|}" . brace-face)) |
|---|
| 397 | '(("\\[\\|\\]" . bracket-face)) |
|---|
| 398 | c-font-lock-keywords-3)) |
|---|
| 399 | |
|---|
| 400 | |
|---|
| 401 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 402 | ;; 前のウィンドウへ、次のウィンドウへ、の移動が楽になる |
|---|
| 403 | ;; from GNU Emacs 拡張ガイド |
|---|
| 404 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 405 | (defun other-window-backward (&optional n) |
|---|
| 406 | "Select Nth previous window." |
|---|
| 407 | (interactive "P") |
|---|
| 408 | (other-window (- (prefix-numeric-value n)))) |
|---|
| 409 | (global-set-key "\C-x\C-p" 'other-window-backward) |
|---|
| 410 | (global-set-key "\C-x\C-n" 'other-window) |
|---|
| 411 | |
|---|
| 412 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 413 | ;; C プログラムの書式は k&r style |
|---|
| 414 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 415 | (progn |
|---|
| 416 | (defun my-c-mode-common-hook () |
|---|
| 417 | (c-set-style "k&r")) |
|---|
| 418 | (add-hook 'c-mode-common-hook 'my-c-mode-common-hook)) |
|---|
| 419 | |
|---|
| 420 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 421 | ;; いろいろ |
|---|
| 422 | ;; Deleteキーでカーソル位置の文字が消えるようにする |
|---|
| 423 | |
|---|
| 424 | (defun memo () |
|---|
| 425 | (interactive) |
|---|
| 426 | (add-change-log-entry |
|---|
| 427 | nil |
|---|
| 428 | (expand-file-name "~/ChangeLog"))) |
|---|
| 429 | (define-key ctl-x-map "M" 'memo) |
|---|
| 430 | |
|---|
| 431 | (add-to-list 'auto-mode-alist '("\\.rd$" . rd-mode)) ; メモは rd-mode に |
|---|
| 432 | |
|---|
| 433 | ;; 日本語まじってる場合でも ispell が効くように |
|---|
| 434 | (eval-after-load "ispell" |
|---|
| 435 | '(setq ispell-skip-region-alist (cons '("[^\000-\377]+") |
|---|
| 436 | ispell-skip-region-alist))) |
|---|
| 437 | (eval-after-load "ispell" |
|---|
| 438 | '(setq ispell-skip-region-alist (cons '("[^A-Za-z0-9 -]+") |
|---|
| 439 | ispell-skip-region-alist))) |
|---|
| 440 | |
|---|
| 441 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 442 | ;; iswitchb |
|---|
| 443 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 444 | (iswitchb-mode 1) |
|---|
| 445 | |
|---|
| 446 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 447 | ;; diff-mode |
|---|
| 448 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 449 | (autoload 'diff-mode "diff-mode" "Diff major mode" t) |
|---|
| 450 | (add-to-list 'auto-mode-alist '("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode)) |
|---|
| 451 | |
|---|
| 452 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 453 | ;; uniquify(同名ファイルのバッファ名の識別文字列を変更する) |
|---|
| 454 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 455 | (load "uniquify") |
|---|
| 456 | |
|---|
| 457 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 458 | ;; psvn |
|---|
| 459 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 460 | (autoload 'svn-status "psvn" nil t) |
|---|
| 461 | |
|---|
| 462 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 463 | ;; abbrev-mode |
|---|
| 464 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 465 | (abbrev-mode 1) |
|---|
| 466 | |
|---|
| 467 | (define-abbrev-table 'global-abbrev-table |
|---|
| 468 | '( |
|---|
| 469 | ("lcom" "# =========================================================================" nil 1) |
|---|
| 470 | ("com" "# -------------------------------------------------------------------------" nil 1) |
|---|
| 471 | )) |
|---|
| 472 | |
|---|
| 473 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 474 | ;; sql-mode |
|---|
| 475 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 476 | (add-hook 'sql-mode-hook |
|---|
| 477 | (lambda () |
|---|
| 478 | ;; mysql つかうあるよ |
|---|
| 479 | (setq sql-product 'mysql) |
|---|
| 480 | ;; ユーザ設定とか |
|---|
| 481 | (setq sql-user "root") |
|---|
| 482 | ;; インデントの設定とか |
|---|
| 483 | (load-library "sql-indent") |
|---|
| 484 | (setq sql-indent-offset 4) |
|---|
| 485 | (setq sql-indent-maybe-tab nil) |
|---|
| 486 | ;; ちょっとダサいけど…… LIMIT を追加しただけ…… |
|---|
| 487 | (setq sql-indent-first-column-regexp |
|---|
| 488 | (concat "^\\s-*" |
|---|
| 489 | (regexp-opt |
|---|
| 490 | '( |
|---|
| 491 | "select" "update" "insert" "delete" |
|---|
| 492 | "union" "intersect" |
|---|
| 493 | "from" "where" "into" "group" "having" "order" |
|---|
| 494 | "set" "and" "or" "exists" "limit" |
|---|
| 495 | "--") t) "\\(\\b\\|\\s-\\)")))) |
|---|
| 496 | |
|---|
| 497 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 498 | ;; javascript-mode |
|---|
| 499 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|---|
| 500 | (autoload 'javascript-mode "javascript" "JavaScript mode" t) |
|---|
| 501 | (setq auto-mode-alist (append '(("\\.js$" . javascript-mode)) |
|---|
| 502 | auto-mode-alist)) |
|---|