cursor-chg 20170102.922(in MELPA)
Change cursor dynamically, depending on the context.

概要

cursor-chg.el は、場面に応じて
カーソルの色や形状を変更します。

  1. 通常時
  2. バッファが読み込み専用( read-only-mode )
    または上書き( overwrite-mode )のとき
  3. インプットメソッドを使っているとき
  4. アイドル時(任意)

それにより、
カーソルを見るだけでEmacsの状態が
ひと目でわかるようになります。

Emacs20から動作します。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてcursor-chgを使う方は
以下のコマンドを実行します。

M-x package-install cursor-chg

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name cursor-chg

カーソルの形状について

それでは、
Emacsが使えるカーソルについて見てみましょう。

20170112082601.png
Fig1: box

20170112082612.png
Fig2: hollow

20170112082619.png
Fig3: bar

20170112082628.png
Fig4: hbar

20170112082637.png
Fig5: nil (透明!)

カスタマイズ

以下のカスタマイズ変数があります。
()内はデフォルトです。

curchg-default-cursor-color
デフォルトのカーソルの色(デフォルトの設定か "Red" )
curchg-default-cursor-type
デフォルトのカーソルの形状( bar )
curchg-change-cursor-on-input-method-flag
インプットメソッド使用時にカーソルを変更させるか( t )
curchg-input-method-cursor-color
インプットメソッド使用時のカーソルの色( "Orange" )
curchg-change-cursor-on-overwrite/read-only-mode
read-onlyかoverwriteのときにカーソルを変更させるか( t )
curchg-overwrite/read-only-cursor-type
read-onlyかoverwriteのときのカーソルの形状( box )
curchg-idle-cursor-type
アイドル時のカーソルの形状( box )

また、 curchg-set-cursor-type 関数で
デフォルトのカーソルの形状を変更できます。

curchg-change-cursor-when-idle-interval 関数で
アイドル時にカーソルの形状を
変更するまでの秒数を設定します。

デフォルトは2秒です。


設定 170112082314.cursor-type.el(以下のコードと同一)

(require 'cursor-chg)

;;; デフォルトのカーソルの色はピンク
(setq curchg-default-cursor-color "Pink")
;;; デフォルトのカーソルの形状はbox
(setq curchg-default-cursor-type 'box)
;;; overwrite/read-onlyのカーソルの形状はbar
(setq curchg-overwrite/read-only-cursor-type 'bar)
;;; カーソル形状の変更を有効!
(change-cursor-mode 1)

;;; 5秒のアイドル時にもカーソルをhbarに変更させる
;;; 以下の3行はお好みで
(toggle-cursor-type-when-idle 1)
(setq curchg-idle-cursor-type 'hbar)
(curchg-change-cursor-when-idle-interval 5)

実行方法

$ wget http://rubikitch.com/f/170112082314.cursor-type.el
$ emacs -Q -f package-initialize -l 170112082314.cursor-type.el

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。