Software Engineer and Web Developer's Diary

1年後の自分に向けて

最新のcoLinux-.emacs

[code] ;;;; -- mode: lisp-interaction; syntax: elisp; coding: utf-8-unix -- ;; ~/elisp をライブラリパスに追加 (setq load-path (append (list (expand-file-name "~/elisp/") ) load-path))

;; 日本語設定 (UTF-8) (set-language-environment "Japanese") (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8)

;; ChangeLog の設定 (setq user-full-name "xxx") (setq user-mail-address "xxx") (defun memo () (interactive) (add-change-log-entry nil (expand-file-name "~/memo/diary.txt"))) (define-key ctl-x-map "M" 'memo)

;; タブの基本設定 (setq tab-width 4) (setq c-basic-offset 4)

;; フォントロックモード (強調表示等) を有効にする (global-font-lock-mode t)

;; 一時マークモードの自動有効化 (setq-default transient-mark-mode t)

;; C-x C-u が何もしないように変更する (undo の typo 時誤動作防止) (global-unset-key "C-xC-u")

;; 括弧の対応をハイライト. (show-paren-mode 1)

;; バッファ末尾に余計な改行コードを防ぐための設定 (setq next-line-add-newlines nil)

;; C-x l で goto-line を実行 (define-key ctl-x-map "l" 'goto-line)

;; 時間を表示 (display-time)

;; 列数表示 (column-number-mode 1)

;; メニューバーを消す (menu-bar-mode -1)

;; バックアップファイルを作成しない (setq make-backup-files nil)

;; grep-find の結果に .svn ディレクトリを含まないようにする (setq grep-find-command "find . -type f -path '.svn' -prune -o -print0 | xargs -0 -e grep -nH -e ")

;; C-h でカーソルの左にある文字を消す (define-key global-map "C-h" 'delete-backward-char)

;; C-h に割り当てられている関数 help-command を C-x C-h に割り当てる (define-key global-map "C-xC-h" 'help-command)

;; C-z のキーバインドを開放 (global-unset-key "C-z")

;; toggle-truncate-lines を "C-z l" に定義する (define-key global-map "C-zl" 'toggle-truncate-lines)

;; 画面の左端に行番号を表示できるように (require 'wb-line-number) ;; "C-z n" に定義する (define-key global-map "C-zn" 'wb-line-number-toggle)

;; C-o に動的略語展開機能を割り当てる ;;(define-key global-map "C-o" 'dabbrev-expand) ;;(setq dabbrev-case-fold-search nil) ; 大文字小文字を区別

;; 日本語・英語混じり文での区切判定 ;; http://www.alles.or.jp/~torutk/oojava/meadow/Meadow210Install.html (defadvice dabbrev-expand (around modify-regexp-for-japanese activate compile) "Modify `dabbrev-abbrev-char-regexp' dynamically for Japanese words." (if (bobp) ad-do-it (let *1 auto-mode-alist)) (setq php-mode-force-pear t) (add-hook 'php-mode-user-hook '(lambda () (setq tab-width 4) (setq c-basic-offset 4) (setq indent-tabs-mode nil) (setq php-manual-path "/usr/local/share/php/doc/html") (setq php-manual-url "http://www.phppro.jp/phpmanual/")))

;;;; ruby-mode (要 ruby-mode.el) (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (setq auto-mode-alist (append '*2 auto-mode-alist)) (setq interpreter-mode-alist (append '*3 interpreter-mode-alist)) (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))

;; cperl-mode の設定。インデントをいい感じに、他。 (autoload 'perl-mode "cperl-mode" "alternate mode for editing Perl programs" t) (setq cperl-auto-newline t) (setq cperl-indent-parens-as-block t) (setq cperl-close-paren-offset -4) (setq cperl-indent-level 4) (setq cperl-label-offset -4) (setq cperl-continued-statement-offset 4) (setq cperl-highlight-variables-indiscriminately t) (add-hook 'cperl-mode-hook (lambda () (set-face-italic-p 'cperl-hash-face nil))) (add-hook 'cperl-mode-hook '(lambda () (define-key cperl-mode-map "C-cc" 'cperl-check-syntax) (setq indent-tabs-mode nil)))

;; cf-mode (autoload 'cf-mode "cf-mode" "Mode for editing cf source files" t) (setq auto-mode-alist (append '*4 auto-mode-alist)) (add-hook 'cf-mode-user-hook '(lambda () (setq tab-width 4) (setq c-basic-offset 4) (setq indent-tabs-mode nil)))

;; mmm-mode (require 'mmm-mode) (setq mmm-global-mode 'maybe) (set-face-background 'mmm-default-submode-face nil) ;;背景色不要 (setq mmm-submode-decoration-level 2) ;;カラー表示 (setq mmm-font-lock-available-p t) ;;カラー表示 (mmm-add-mode-ext-class nil ".ctp?'" 'html-php) (mmm-add-classes '*5

;; css-mode (autoload 'css-mode "css-mode") (setq auto-mode-alist (cons '(".css'" . css-mode) auto-mode-alist)) (setq cssm-indent-function #'cssm-c-style-indenter)

;; リセットされた場合に UTF-8 に戻す ;; http://0xcc.net/blog/archives/000041.html (set-default-coding-systems 'utf-8)

;; 矢印などの文字がうまく使用できない問題に対応 ;; http://www.pqrs.org/~tekezo/emacs/doc/wide-character/index.html (utf-translate-cjk-set-unicode-range '((#x00a2 . #x00a3) ; ¢, £ (#x00a7 . #x00a8) ; §, ¨ (#x00ac . #x00ac) ; ¬ (#x00b0 . #x00b1) ; °, ± (#x00b4 . #x00b4) ; ´ (#x00b6 . #x00b6) ; ¶ (#x00d7 . #x00d7) ; × (#X00f7 . #x00f7) ; ÷ (#x0370 . #x03ff) ; Greek and Coptic (#x0400 . #x04FF) ; Cyrillic (#x2000 . #x206F) ; General Punctuation (#x2100 . #x214F) ; Letterlike Symbols (#x2190 . #x21FF) ; Arrows (#x2200 . #x22FF) ; Mathematical Operators (#x2300 . #x23FF) ; Miscellaneous Technical (#x2500 . #x257F) ; Box Drawing (#x25A0 . #x25FF) ; Geometric Shapes (#x2600 . #x26FF) ; Miscellaneous Symbols (#x2e80 . #xd7a3) (#xff00 . #xffef))) [/code]

*1:dabbrev-abbrev-char-regexp (let ((c (char-category-set (char-before)))) (cond ((aref c ?a) "[-_A-Za-z0-9]") ; ASCII ((aref c ?j) ; Japanese (cond ((aref c ?K) "cK") ; katakana ((aref c ?A) "cA") ; 2byte alphanumeric ((aref c ?H) "cH") ; hiragana ((aref c ?C) "cC") ; kanji (t "cj"))) ((aref c ?k) "ck") ; hankaku-kana ((aref c ?r) "cr") ; Japanese roman ? (t dabbrev-abbrev-char-regexp))))) ad-do-it)))

;; BS で選択範囲を消す (delete-selection-mode 1)

;; The local variables list in .emacs と言われるのを抑止 (add-to-list 'ignored-local-variables 'syntax)

;; ミニバッファ中での補完機構を補強 (iswitchb-mode t)

;; kill リングバッファの内容を表示しながらヤンクできるようにする (autoload 'kill-summary "kill-summary" nil t) (define-key global-map "ey" 'kill-summary)

;; php-mode (autoload 'php-mode "php-mode") (setq auto-mode-alist (append '((".[php|inc]$" . php-mode

*2:".rb$" . ruby-mode

*3:"ruby" . ruby-mode

*4:".[cfm|cfc]$" . cf-mode

*5:html-php :submode php-mode :front ""))) (add-to-list 'auto-mode-alist '(".ctp?'" . html-mode