我喜欢大约8左右的滚动边距.这意味着当光标位于顶部或底部的8行内时,缓冲区将开始滚动.但是,此方案不适用于eshell和ansi-term缓冲区,isql缓冲区或可能与emacs一起使用的任何REPL缓冲区.在任何一个缓冲区中,当一个缓冲区执行任何操作时,它会立即向上滚动缓冲区,以便缓冲区底部和输入线之间有8条线,使得它最好处于尴尬状态,在最坏情况下无法使用任何类似终端的终端emacs中的缓冲区,具体取决于具体情况.
除非是全局的,否则没有缓冲区似乎能识别scroll-margin变量.因此,虽然我可以使用不同模式中的挂钩将变量设置为不同的值,但它会影响我的所有打开缓冲区.
所以我要说我正在编辑一些代码.我决定在shell中做一些事情.我的shell-mode-hooks将scroll-margin设置为0(这样它们可以使用).然后,对于所有缓冲区,滚动边距设置为0 ,这使得在我的编码缓冲区中滚动变得笨拙.但是如果我打开一个新的编码缓冲区,它会将我的滚动边距设置回8.然后我的shell缓冲区很难或无法使用,因为只要它们从命令获得焦点或显示输出,它就会立即向上滚动8个空格.
除了为所有缓冲区保持全局滚动边距0之外,是否有任何解决方案?