スクロール中にEmacs
がテキストカーソルの位置(別名、ポイント)を自動的に移動しないようにする方法はありますか?私は自分の場所を失い続け、この迷惑な行動の印を付けます。
次の提案をテストしましたが、成功しませんでした。
(setq scroll-preserve-screen-position t
scroll-conservatively 0)
(UbuntuとOS XでEmacs
24.2を実行しています。)
カーソル(ポイント)と表示領域の動作は、notepad
、gedit
、その他の最新のエディターのようにする必要があると思います。ポイントの位置に関係なく表示領域を変更し、すぐに表示に戻す機能ポイントを移動した後のポイント位置への領域。ただし、emacs
には別の概念があります。表示領域は常にポイント位置に従い、その逆も同様です。
参照 https://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs
以前の答えは特別なイディオムを示しています:可視領域を(ポイントと一緒に)現在の位置から遠くに移動し、ポイントを直前の位置に正確に戻す場合は、mark-ring
を使用する癖があります。 mark ring
から現在の作業位置に到達する方法は常にあります。isearch-forward
、beginning-of-buffer
、ace-jump-mode
などの多くのコマンドは自動的に前の位置をmark ring
に保存します。以前はC-<SPC> C-<SPC>
を使用していませんが、ジャンプバックにはC-u C-<SPC>
のみを使用しています。 scroll-up
やmwheel-scroll
などのスクロールコマンドは、余計なマークが多すぎる可能性があるため、デフォルトでは以前の位置を自動的に保存しません。
コマンドclone-indirect-buffer
またはview-buffer-other-window
を使用して、いくつかの場所でバッファーを使用した独立した作業を行うことができます。また、コマンドrecenter-top-bottom
(C-l
)を使用して、表示領域の中心にポイントを継続的に保持します。
スクロール時にemacsがポイントを移動しないようにする方法があるかどうかはわかりません。ただし、後で戻るために場所を保存したい場合は、 マークリング を使用できます。
つまり、C-<SPC> C-<SPC>
と入力して現在のポイントの場所をマークリングにプッシュし、後でC-u C-<SPC>
と入力してポイントをマークリングの前の場所に設定します。
私はこれを使用します:
;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")
以下は私のために働きます:
(custom-set-variables
'(scroll-conservatively 1000)
'(scroll-margin 3)
)