メリークリスマス! Emacsのカーソルは好きですか? 私は慣れました。
あるWindowsのテキストエディタでは、このように3種類の設定ができます。Emacsではどうすればできるでしょうか。
設定方法
init.el
ではdefault-frame-alist
に設定するのが簡単です。この変数はフレーム(一般的なGUIの用語における「ウィンドウ」)の初期化時のプロパティを設定できます。
(add-to-list 'default-frame-alist '(cursor-type . bar))
この設定が動作することは新しいフレームを作成(M-x make-frame
)したときに確認できます。
簡単な確認方法
*scratch*
バッファに貼り付けて以下一行づつC-x C-e
で実行してみるのがよいです。
(set-frame-parameter (window-frame) 'cursor-type 'box)
(set-frame-parameter (window-frame) 'cursor-type 'bar)
(set-frame-parameter (window-frame) 'cursor-type 'hbar)
(set-frame-parameter (window-frame) 'cursor-type '(hbar . 10))
(set-frame-parameter (window-frame) 'cursor-type 'hollow)
(set-frame-parameter (window-frame) 'cursor-type nil)
設定ファイルに書くときはset-frame-parameter
よりも、先に書いた(add-to-list 'default-frame-alist ...)
の方がおすすめです。
文字の左に縦棒
(add-to-list 'default-frame-alist '(cursor-type . bar))
文字に下線
(add-to-list 'default-frame-alist '(cursor-type . hbar))
文字の下部にブロック
この設定には数字をそのまま書かなくてはいけません。好きな数字を入れてください。画像は概ねフォントサイズの半分程度です。
(add-to-list 'default-frame-alist '(cursor-type . (hbar . 10))
ボックス(デフォルト)
(add-to-list 'default-frame-alist '(cursor-type . box))
hollow(枠線)
(add-to-list 'default-frame-alist '(cursor-type . hollow))
おまけ1: カーソルを点滅しなくするようにするには?
(blink-cursor-mode -1)
おまけ2: 端末でカーソルを変更するには?
実はVT100にはDECSCUSR—Set Cursor Styleなる制御シーケンスがあり、さらにTeraTermやiTerm2などでは独自拡張して縦棒のカーソルも表示できるようになってます。vim からの制御シーケンスの使用例なども紹介されてるので、なんかいい感じにすれば(Emacs本体に手を入れれば)カーソル変更できるんじゃないですかね。私は調べてないです。