Skip to content

Emacsの視認性を向上させる設定、elisp #38

Open
@kai2nenobu

Description

@kai2nenobu

デフォルトのEmacsの表示は割とそっけないですが、設定や
elispを追加することで視認性を向上させる事ができると思います。
みなさんが使っているものを教えて欲しいです。

とりあえず自分の知っているものを上げておきます。

バッファの終端を明示する

(setq-default indicate-empty-lines t)

を設定ファイルに書いておくとバッファの終端以降はフリンジに
マークがつくので、バッファの終端がわかりやすくなります。

空白文字類を明示 whitespace.el

空白文字、改行、文末、空行、文末の空白文字などのフェイスや表示を
変更することにより、わかりやすくします。デフォルトで付属しているelispです。
自分は全角空白とタブを明示したいので、使ってます。
ブログに書いている人も結構いますね。

非アクティブバッファの背景色変更 hiwin.el

アクティブなバッファと、非アクティブなバッファで背景色を変えることができるので、
どのバッファにフォーカスしているのかわかりやすくなります。
以下の様な設定にしてます。

(when (require 'hiwin nil t)
  (hiwin-activate)                            ;; hiwin-modeを有効化
  (set-face-background 'hiwin-face "gray10"))  ;; 非アクティブバッファの背景色を設定

現在行をハイライト hl-line+.el

現在カーソルがある行の背景色を変更できるので、どこにカーソルがあるか
すぐわかるようになります。hl-line.el は標準附属のelispですが、hl-line+.elは
hl-line.elの拡張で、EmacsWikiかMELPAからインストール出来ます。
hl-line+.elだと、アイドル時にのみハイライトしたり、数秒間だけハイライトすることが
できるようになっています。以下のように設定してます。

(when (require 'hl-line+ nil t)  ; hl-line is also loaded
  (global-hl-line-mode 1)
  (defface my-hl-line-face
    '((((class color) (background dark))  ; カラーかつ, 背景が dark ならば,
       (:background "gray10" t))
      (((class color) (background light)) ; カラーかつ, 背景が light ならば,
       (:background "gray90" t))
      (t (:bold t)))
    "hl-line's my face")
  (setq hl-line-face 'my-hl-line-face)
  )

同様に現在桁をハイライトするcol-highlight.elもあります。インデントがわかりやすくなるので
elisp書くときなんかは便利ですが、常時ONは結構重くなるので、
flash-column-highlightで必要な時だけ現在桁をハイライトするのが
リーズナブルだと思います。

fill-column を明示する fill-column-indicator.el

fill-column の桁数のところに縦線を表示してくれるので、文章を折り返す
目安がわかりやすくなります。コミットログやTeX文書などの文章を書く際は
fill-paragraph と共に使えば非常に相性がいいです。
しかし、auto-complete.el(おそらく中で使われているpopup.el)と
相性が悪く、ポップアップの表示が崩れたりします。
EmacsWikiかMELPAからインストール出来ます。

設定は以下の様な感じです。globalなマイナーモードがなかったので
自分で定義しました。

(when (require 'fill-column-indicator nil t)
  (setq fci-rule-color "gray")  ;; 縦線の色
  (define-globalized-minor-mode global-fci-mode fci-mode turn-on-fci-mode)
  (global-fci-mode)
  )

全部有効にするとこうなります。
appearance_sample

この他にも便利なものがあれば教えて下さい。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions