Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
kai2nenobu opened this issue Feb 23, 2013 · 7 comments
Open

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

kai2nenobu opened this issue Feb 23, 2013 · 7 comments

Comments

@kai2nenobu
Copy link
Member

デフォルトの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

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

@syohex
Copy link
Member

syohex commented Feb 23, 2013

一時期そのあたり凝っていたのでいろいろ使っていたんですが、whitespece-modeは巨大なファイルだと
もっさりするし、hl-lineは返って見づらくなるような気がしてやめました。

現在はカーソルの色を変えている程度です。

  (set-cursor-color "chartreuse2")
  (blink-cursor-mode t)

あとは桁を合わせるときに、col-highlightを使う程度です。

@tarao
Copy link
Member

tarao commented Feb 23, 2013

バッファの範囲をフリンジに表示するのは

(setq indicate-buffer-boundaries 'left)

でもできますね。こちらは、今表示している範囲よりも上や下にバッファが続いている場合は↑や↓が表示されます。

ただこれらはフリンジを使うため、emacs -nwだと表示されなくて困るので、オーバーレイで[EOF]と表示するend-mark.elというのを自作して使っています。

@syohex
Copy link
Member

syohex commented Feb 23, 2013

最近だと zk-phiさんの nurumacsがおしゃれです。どのあたりにいるかわかります

nurumacs

Sublime Textにある機能らしいです。

@tkita
Copy link
Member

tkita commented Feb 23, 2013

Completionsバッファの視認性向上

(set-face-foreground 'completions-common-part "dark slate gray")
(set-face-foreground 'completions-first-difference "green")

@myuhe
Copy link
Member

myuhe commented Feb 23, 2013

視認性といえないかもしれませんが、画面内の情報量も視認性の一つということで、e2wmを。

e2wm

プラグイン作成に便利なインターフェイスがすでに準備されているので、自分が好きなようにいかようにも変えられるところも素敵ポイント高いです。

@kai2nenobu
Copy link
Member Author

@tarao なるほど,これはいいですね.

@syohex minimap ってやつですね.EmacsWiki: Mini Map ていうのもありますね.機能は同じそうな雰囲気がします.

@tkita Completion バッファは素っ気ない表示の最たるものですね.いただきました.

@myuhe e2wm 非常にいいですよね.しかし残念ながら popwin.el なんかの他のウィンドウ構成をいじる elisp と同時に使うと意図通りうごかないんで,利用してない状態です.

@myuhe
Copy link
Member

myuhe commented Feb 24, 2013

@kbkbkbkb1
最近のe2wmではpopwinライクな利用をするためのメソッドが実装されていて、いくつかのパースペクティブには、すでにその機能が追加されています。
ここ最近のコミットログなどやりとりを見るとなんとなくわかると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants