私は約8かそこらのスクロールマージンが好きです。これは、カーソルが上または下から8行以内に入ると、バッファがスクロールを開始することを意味します。ただし、このスキームは、eshellおよびansi-termバッファー、isqlバッファー、またはemacsで使用する可能性のあるREPLバッファーではうまく機能しません。これらのバッファのいずれかで、何かを行うと、すぐにバッファが上にスクロールされ、バッファの下部と入力行の間に8行が表示されるため、端末のようなものを使用するのは、せいぜい厄介で、最悪の場合は使用できなくなります。状況に応じて、emacsのバッファ。
グローバルでない限り、スクロールマージン変数を認識するバッファはないようです。したがって、さまざまなモードのフックを使用して変数をさまざまな値に設定できますが、開いているすべてのバッファーに影響します。
それで、私がいくつかのコードを編集しているとしましょう。私はシェルでいくつかのことをすることにしました。私のshell-mode-hooksは、scroll-marginを0に設定しました(使用できるようにするため)。次に、すべてのバッファーのスクロールマージンが0に設定されるため、コーディングバッファーをスクロールするのが面倒になります。しかし、新しいコーディングバッファーを開くと、スクロールマージンが8に戻ります。その後、シェルバッファーは、コマンドからフォーカスを取得したり出力を表示したりするたびに8スペース上にスクロールするため、扱いにくいか使用できません。
すべてのバッファのスクロールマージンをグローバルに0に保つ以外に、この問題の解決策はありますか?