新規作成  編集  差分  FrontPage  ページ一覧  検索  更新履歴  編集履歴  RSS  管理

岩手大学情報システム工学科のWiki - (Emacs)目立たせる 差分

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

キーワードや現在の状況などをフェイスを変えて目立たせます.

! キーワードなどを目立たせる

.emacsに以下を追加(もう追加されていると思うけど).

(global-font-lock-mode t)

fast-lock-modeのために~/.emacs-flc/ディレクトリを作っておくとよいかも.

% mkdir -p ~/.emacs-flc

~/.emacs-flc/以下にできるファイルはキャッシュファイルなので,消してしまっても問題ない(はず).

! 現在行を目立たせる

Emacs21限定

.emacsに以下を追加

;;; 現在行を目立たせる.
(require 'hl-line)
(global-hl-line-mode)

もし,下線にしたければ以下も追加する.

;; 下線にする
(setq hl-line-face 'underline)

こんな風に書いておくと,Emacs21のときのみ有効になる.

;;; 現在行を目立たせる.
(when (>= emacs-major-version 21)
   (require 'hl-line)
   (global-hl-line-mode)
   ;; 下線にする
   (setq hl-line-face 'underline))

! S式を目立たせる

!! 設定ファイルをコピー

~h13j43/lib/emacs から、mic-paren.elのファイルをコピーする。

% cp ~h13j43/lib/emacs/mic-paren.el ~/lib/emacs/

!! S式を下線で目立たせるように設定する

.emacs に以下を記述

(require 'mic-paren)
(paren-activate)
(setq paren-match-face '(underline paren-face))
(setq paren-sexp-mode t)
(setq parse-sexp-ignore-comments t)

! かっこを目立たせる/目立たせない

かっこを目立たせるモードにしたければ.emacsに以下を追加

(show-paren-mode 1)

かっこを目立たせるモードにしたくなければ.emacsに以下を追加

(show-paren-mode nil)

現在の状態とトグル(反転)させたければ(M-:でも使って)以下のS式を評価する.

(show-paren-mode)

! 変更した箇所を目立たせる

変更箇所を目立たせるには,.emacs に以下を追加

(global-highlight-changes 'active)

セーブするたびに変更箇所の色をローテートするには,さらに次の設定を追加.

(add-hook 'write-file-hooks 'highlight-changes-rotate-faces)


! TIPS

!! highlight-changes-rotate-faces の色の変更

highlight-changes-rotate-faces はデフォルトで以下の色をローテートします.

("yellow" "magenta" "blue" "maroon" "firebrick" "green4" "DarkOrchid")

これを変更したければ,変数 highlight-changes-colours を自分の好みの色を指定したリストにしてください.

また,変更色にかっこよくグラデーションをつけるには,以下の設定が使えます.

(require 'cl)
(require 'hilit-chg)
(defun make-color-name (r g b)
   (format "#%02x%02x%02x" (/ r 256) (/ g 256) (/ b 256)))
(defun color-value-r (x) (car x))
(defun color-value-g (x) (cadr x))
(defun color-value-b (x) (caddr x))
(defun highlight-changes-make-gradation-colours ()
   (setq highlight-changes-colours '())
   (let* ((gradation-level 15)
          (highlight (color-values (face-foreground 'highlight-changes-face)))
          (default (color-values (face-foreground 'default)))
          (r-diff (- (color-value-r default) (color-value-r highlight)))
          (g-diff (- (color-value-g default) (color-value-g highlight)))
          (b-diff (- (color-value-b default) (color-value-b highlight)))
          (i 0))
     (while (< i gradation-level)
       (let* ((r (truncate (- (color-value-r default)
                              (* r-diff (/ (float i) gradation-level)))))
              (g (truncate (- (color-value-g default)
                              (* g-diff (/ (float i) gradation-level)))))
              (b (truncate (- (color-value-b default)
                              (* b-diff (/ (float i) gradation-level)))))
              (color (make-color-name r g b)))
         (add-to-list 'highlight-changes-colours color)
         (setq i (1+ i)))))
   highlight-changes-colours)
(if window-system
    (highlight-changes-make-gradation-colours))
(add-hook 'write-file-hooks 'highlight-changes-rotate-faces)
(global-highlight-changes 'active)