;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;  -*- coding: utf-8-unix -*-
;;  FSF Emacs 24 用 Vine Linux 基本設定
;;    Munehiro Yamamoto <munepi@vinelinux.org>
;;	$Id: vine-default-base.el,v 1.4 2010/01/04 11:21:29 munepi Exp $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; emacsclient サーバを起動
;(server-start)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

;;; emacs -nw で起動した時にメニューバーを消す
(unless window-system (menu-bar-mode 0))

;;; 画面最下行で[↓]を押したときのスクロール数
;(setq scroll-step 1)

;; ;;; ツールバーを消す
;; (tool-bar-mode 0)

;;; cursor の blink を止める
(blink-cursor-mode 0)

;;; active でない window の空 cursor を出さない
(setq cursor-in-non-selected-windows 0)

;;; フォントのスケールをしない
(setq scalable-fonts-allowed 0)

;;; image.el における JPEG の判定基準を緩める
;(eval-after-load "image"
; '(setq image-type-regexps
;   (cons (cons "^\377\330" 'jpeg) image-type-regexps)))

;;; 表示の行間を拡げる
(setq line-spacing 2)

;;; タブ幅
;(setq tab-width 4)

;;; [Home] Key と [End] Key を従来の動作に戻す
(define-key global-map [home] 'beginning-of-buffer)
(define-key global-map [end] 'end-of-buffer)

;;; C-h と Del の入れ替え
;;; Help が Shift + Ctrl + h および Del に割当てられ、
;;; 前一文字削除が Ctrl + h に割当てられます
;(load-library "term/keyswap")
;(if (eq window-system 'x)
;    (progn
;      (define-key function-key-map [delete] [8])
;      (put 'delete 'ascii-character 8)))

;;; Ctrl-H を前1文字削除に変更
(define-key global-map "" 'backward-delete-char)

;; ;;; Ctrl-z で undo
;; (global-set-key "\C-z" 'undo)

;; ;;; \M-p, \M-n でパラグラフ単位で移動
;; (global-set-key "\M-p" 'backward-paragraph)
;; (global-set-key "\M-n" 'forward-paragraph)

;;; Emacs23 からは C-n や C-p での移動が物理行単位になっていたので、
;;; 以前と同じ論理行単位の移動へ変更
(setq line-move-visual 0)

;;; スクロールバーを右側に表示する
(set-scroll-bar-mode 'right)

;;; gzファイルも編集できるように
(auto-compression-mode 1)

;;; visible-bell
(setq visible-bell 1)

;;; 行番号を表示する
(line-number-mode 1)

;; ;;; diff -up 
;; (setq diff-switches "-up")

;;; Dired の設定
;; Dired のリストフォーマット設定 (ls へのオプション)
;; (setq dired-listing-switches "-aoFLt")
;; ls の出力を英語にする(ls を LANG=C で実行)
(add-hook 'dired-mode-hook  '(lambda ()(setenv "LANG" "C")))

;;; diredでディレクトリを先に表示
(setq ls-lisp-dirs-first 1)

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

;; ;;; ステータスラインに時間を表示する
;; (if (or (and (>= emacs-major-version 20)
;;              (not (equal (getenv "LANG") "ja_JP.UTF-8")))
;;         (>= emacs-major-version 22))
;;     (progn
;;       (setq dayname-j-alist
;;            '(("Sun" . "日") ("Mon" . "月") ("Tue" . "火") ("Wed" . "水")
;;              ("Thu" . "木") ("Fri" . "金") ("Sat" . "土")))
;;       (setq display-time-string-forms
;;            '((format "%s年%s月%s日(%s) %s:%s %s"
;;                      year month day
;;                      (cdr (assoc dayname dayname-j-alist))
;;                      24-hours minutes
;; 		     load)))
;;       ))
;; (display-time)

;;; 印刷設定
;(setq-default lpr-switches '("-Pepson"))
(setq-default lpr-switches '("-2P"))
(setq-default lpr-command "mpage")

;;; ps-print
(setq ps-multibyte-buffer 'non-latin-printer)
(if (>= emacs-major-version 21)
    (progn
      (require 'ps-mule)
      (defalias 'ps-mule-header-string-charsets 'ignore)))

;; ;;; バッファの最後では next-line で新規行を追加しない
;; (setq next-line-add-newlines nil); default: nil

;;; mark 領域に色付け
;(setq transient-mark-mode 1)

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

;;; shell-mode
;; shell の出力するエスケープシーケンスによる色付き文字を
;; 正しく表示する
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(provide 'vine-default-base)

;; Local Variables:
;; mode: emacs-lisp
;; End:
