Next: 入力イベント, Previous: コマンドループからの情報, Up: コマンドループ [Contents][Index]
When a sequence of text has the display
or composition
property, or is invisible, there can be several buffer positions that result
in the cursor being displayed at same place on the screen. Therefore, after
a command finishes and returns to the command loop, if point is in such a
sequence, the command loop normally moves point to try and make this
sequence effectively intangible.
This point adjustment follows the following general rules: first, the adjustment should not change the overall direction of the command; second if the command moved point, the adjustment tries to ensure the cursor is also moved; third, Emacs prefers the edges of an intangible sequence and among those edges it prefers the non sticky ones, such that newly inserted text is visible.
変数disable-point-adjustment
をセットすることにより、コマンドはこの機能を抑制できます:
この変数が非nil
ならコマンドがコマンドループにリターンするとき、コマンドループはこれらのテキストプロパティをチェックせず、これらのプロパティをもつシーケンスの外にポイントを移動しない。
コマンドループは各コマンドを実行する前にこの変数をnil
にセットするので、あるコマンドがこれをセットしても効果が適用されるのはそのコマンドにたいしてだけである。
この変数を非nil
にセットするとシーケンス外にポイントを移動する、これらの機能は完全にオフになる。