テキスト端末では、カーソルの表示は端末側で制御されており、その大部分はEmacsの制御外となっています。端末によっては、可視の静止カーソルと、非常に目立つ点滅カーソルという2種類のカーソルを提供しているものがあります。デフォルトでは、Emacsは非常に目立つカーソルを使用し、Emacsの起動時や再開時にそれに切り替わります。Emacsの起動時または再開時に変数
visible-cursor が nil
である場合、通常のカーソルが使用されます。
グラフィカルディスプレイや多くのXterm互換テキストターミナルでは、テキストカーソルの色や形状を変更できます。色をカスタマイズするには、cursor という名前のフェイスの :background
属性を変更してください(フェイスのカスタマイズ
を参照)。(このフェイスの他の属性は影響しません。カーソル下に表示されるテキストは、フレームの背景色を用いて描画されます。)形状を変更するには、バッファローカル変数
cursor-type をカスタマイズしてください。指定可能な値は、box(デフォルト)、(box . size)(いずれかの次元が size
ピクセルを超えるマスク済み画像の下で、ボックスカーソルが中抜きのボックスになる)、hollow(中抜きのボックス)、bar(垂直バー)、(bar . n)(幅 n ピクセルの垂直バー)、hbar(水平バー)、(hbar . n)(高さ n ピクセルの水平バー)、または nil(カーソルなし)です。
Xterm互換のテキスト端末では、カーソルのカスタマイズはユーザーオプション xterm-update-cursor で制御されます。有効な値は、カーソルの色と形状を更新する t、形状のみを更新する type、色のみを更新する
color、および外観を更新しない nil
です。テキスト端末では中抜きのボックスを表示できず、代わりに塗りつぶしのボックスを使用します。同様に、すべてのテキスト端末において bar および hbar のピクセルサイズは無視されます。
カーソルをさらに見やすくするには、ポイントを含む行をハイライトするマイナーモード「HL Line」を使用できます。現在のバッファで有効または無効にするには M-x hl-line-mode を使用します。M-x global-hl-line-mode は同じモードをグローバルに有効または無効にします。
残りのコントロールは、Emacsがカーソルの表示方法を完全に制御できるグラフィカルディスプレイでのみ動作します。
デフォルトでは、その間にEmacsが入力を受けなかった場合、カーソルは10回点滅した後に点滅を停止します。何らかの入力イベントが発生すると、カウントがリセットされます。この動作を制御するには、変数
blink-cursor-blinks
をカスタマイズできます。この変数の値は、入力がない状態で何回点滅してから停止するかを指定します。この変数に0または負の値を設定すると、カーソルは永遠に点滅し続けます。カーソルの点滅を完全に無効にするには、変数
blink-cursor-mode を nil
に変更するか(簡単なカスタマイズインターフェースを参照)、次の行を追加してください。
(blink-cursor-mode 0)
initファイルに記述します。あるいは、リスト変数 blink-cursor-alist
をカスタマイズすることで、カーソルが消灯時に点滅する際の表示形式を変更することも可能です。リストの各要素は (on-type . off-type) という形式にする必要があります。つまり、カーソルが点灯時に on-type として表示される場合(ここで on-type
は前述のカーソルタイプのいずれかです)、消灯時には off-type として表示されます。
タブ文字などの一部の文字は、幅が非常に広くなっています。カーソルがこのような文字の上に配置されている場合、通常はデフォルトの文字幅で描画されます。変数
x-stretch-cursor を nil
以外の値に変更することで、カーソルを幅広の文字まで広げることができます。
通常、選択されていないウィンドウでは、カーソルは点滅しない中抜きのボックスとして表示されます。(バーカーソルの場合は、代わりにより細いバーとして表示されます。)選択されていないウィンドウでカーソルを非表示にするには、変数
cursor-in-non-selected-windows を nil に変更してください。