5

我喜欢大约 8 左右的滚动边距。这意味着当光标到达顶部或底部的 8 行以内时,缓冲区将开始滚动。但是,此方案不适用于 eshell 和 ansi-term 缓冲区、isql 缓冲区或任何可能与 emacs 一起使用的 REPL 缓冲区。在这些缓冲区中的任何一个中,当一个人执行任何操作时,它会立即向上滚动缓冲区,以便在缓冲区底部和输入行之间有 8 行,这使得使用任何类似终端的设备充其量是尴尬,最坏的情况是无法使用emacs 中的缓冲区,视情况而定。

除非它是全局的,否则似乎没有缓冲区可以识别滚动边距变量。因此,虽然我可以在不同模式下使用钩子将变量设置为不同的值,但它会影响我所有的打开缓冲区。

所以可以说我正在编辑一些代码。我决定在 shell 中做一些事情。我的 shell-mode-hooks 将滚动边距设置为 0(以便它们可以使用)。然后将所有缓冲区的滚动边距设置为 0 ,这使得在我的编码缓冲区中滚动变得很尴尬。但是,如果我打开一个新的编码缓冲区,它会将我的滚动边距设置回 8。然后我的 shell 缓冲区很尴尬或无法使用,因为每当它们获得焦点或显示命令的输出时,它会立即向上滚动 8 个空格。

除了在全局范围内为所有缓冲区保持滚动边距为 0 之外,是否有任何解决此问题的方法?

4

1 回答 1

8

将评论转换为答案。在钩子中使用缓冲区局部变量。

于 2012-10-01T04:47:20.143 回答