2015年8月15日土曜日

[CentOS5] Emacs の初期設定ファイル


ja_JP.UTF-8環境のCentOS5.0 は、デフォルト設定のままでは emacs  で日本語入力できなかった。なので初期設定ファイルの .emacs を作成した。以下はサンプル。
;;
;;
;; ja_JP.UTF-8 用
;;
;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 日本語
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; Dired
(setq dired-use-gzip-instead-of-compress t)
(setq dired-shrink-to-fit t)
;(setq dired-listing-switches "-Alg")
(setq dired-dwim-target t)
(setq default-file-name-coding-system 'utf-8-unix)


;;; 日本語の設定
;;(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
(set-buffer-file-coding-system 'utf-8-unix)
(if (not window-system) (set-terminal-coding-system 'utf-8-unix))
(setq process-coding-system-alist
      (cons
       '(".*" utf-8-unix . utf-8-unix)
       process-coding-system-alist))

;;; シェルモード用の日本語の設定
(add-hook 'shell-mode-hook
          (function
           (lambda ()
             (set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; C プログラムの書式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;(defun my-c-mode-common-hook ()
;   (c-set-style "linux") (setq indent-tabs-mode t) ;linux 式がいいとき
;   (c-set-style "k&r")                             ;k&r式がいいときはこれを有効にする
;   (c-set-style "gnu")                             ;デフォルトの設定
; )
;(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

;; cc-mode: タブのサイズを4にする
(setq c-site-default-style "bsd")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; キーマップ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Deleteキーでカーソル位置の文字が消えるようにする
(global-set-key [delete] 'delete-char)

;; C-h キーでカーソルの左の文字が消えるようにする。
;; ただし、もともと C-h はヘルプなので、
;; これを有効にすると、ヘルプを使うときには
;; M-x help や F1 を使う必要があります。
;(global-set-key "\C-h" 'backward-delete-char)

;; C-h は Backspace でないと押し間違えてしまうらしい
(define-key global-map "\C-h"      'backward-delete-char)

;; 行番号指定ジャンプ
(define-key global-map "\C-x\C-\j" 'goto-line)

;; C-t でスクロールダウン
(define-key global-map "\C-t" 'scroll-down)

;; コンパイル
(define-key global-map "\C-xc" 'compile)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 見栄え
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; メニューバーを表示しない
(menu-bar-mode -1)

;; スクロールバーを表示しない
(set-scroll-bar-mode nil)

;;; 対応する括弧を光らせる。
(show-paren-mode 1)

;;; タイトルバーにファイル名を表示する
(setq frame-title-format (format "emacs@%s : %%f" (system-name)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; いろいろ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; 一行が 80 字以上になった時には自動改行する
;;;(setq fill-column 80)
;;;(setq text-mode-hook 'turn-on-auto-fill)
;;;(setq default-major-mode 'text-mode)

;;;バッファの最後でnewlineで新規行を追加するのを禁止する
(setq next-line-add-newlines nil)

;;; 最終更新日の自動挿入
;;;   ファイルの先頭から 8 行以内に Time-stamp: <> または
;;;   Time-stamp: " " と書いてあれば、セーブ時に自動的に日付が挿入されます
(if (not (memq 'time-stamp write-file-hooks))
    (setq write-file-hooks
          (cons 'time-stamp write-file-hooks)))

;; Perl-mode: #!/usr/bin/jperl 等も Perl-mode にする
(setq interpreter-mode-alist
      (append '(("jperl" . perl-mode))
              interpreter-mode-alist))

;;php-mode
;;(load-library "php-mode")
;;(require 'php-mode)


;; 自動モード選択の設定
;; .perl, .pl, .pm, .ph のファイルは Perl-mode とし,
;; .tcl および .tk のファイルは Tcl-mode にする
;; .psh のファイルは sh-mode にする
(setq auto-mode-alist
      (append '(("\\.perl$\\|\\.p[hlm]$\\|\\.cgi$\\|/perl/" . perl-mode)
                ("\\.tcl$\\|\\.tk$" . tcl-mode)
                ("\\.psh$" . sh-mode))
              auto-mode-alist))

;;; 圧縮されたファイルも編集できるようにする
(auto-compression-mode t)

;;;ホイールマウス
(mouse-wheel-mode)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; CVSの設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;(setq load-path (append (list "/usr/share/emacs/site-lisp/") load-path))
;(setq load-path (append (list "/usr/share/emacs/site-lisp/elib-1.0") load-path))
;(setq load-path (append (list "/usr/share/emacs/site-lisp/pcl-cvs-2.9.9") load-path))
;(load "pcl-cvs-startup")


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; このファイルに間違いがあった場合に全てを無効にします
(put 'eval-expression 'disabled nil)

; ---- language-env end DON'T MODIFY THIS LINE!