也就是希望 这句 (provide 'init) 应该出现在整个窗口的最下方,而不是在上面
我依稀记得几年前刚用Emacs的时候有看见过这么一条配置,但是现在找了半天都找不到,主要是描述不清楚这个行为。。。
也就是希望 这句 (provide 'init) 应该出现在整个窗口的最下方,而不是在上面
我依稀记得几年前刚用Emacs的时候有看见过这么一条配置,但是现在找了半天都找不到,主要是描述不清楚这个行为。。。
简单地 google 了一下,帮你找到了答案:
我把答案粘贴过来了:
(add-hook 'post-command-hook 'my-eob-recenter)
(defun my-eob-recenter ()
(when (pos-visible-in-window-p (point-max))
(save-excursion
(goto-char (point-max))
(recenter -1))))
赞,但是好像不是特别完美,每次随便执行什么命令都要执行啊。。。我怎么记得很久以前见到过这么一个变量控制这个行为的来着。
不会每次都执行,那个when 语句为真的时候才执行
每次都执行的函数只有一个 pos-visible-in-window-p,那个是 c 函数,对性能影响不大
是的,但是这个方法却是杀伤力太大了~话说这个问题居然是Magit作者提问的
嗯嗯,是的,大神也有需要提问的时候
他也希望有一个 polished mode 来处理这个问题,但是貌似没有等到:
Yes, that’s basically what I was hoping for. We will see how it holds up in practice. I have upvoted your answer but will wait with accepting it; I am still hoping for a polished mode that also takes care of special cases. But thanks a lot! That already helps quite a bit.
设置平滑滚动? 一直用触控版滚屏的。
(setq scroll-conservatively 1)
数字酌情修改,我没设置这个,也不知道多少合适
这个属性很接近但是也会误伤,我一般用GUI + 鼠标滚轮的,所以要禁止这个屏幕跳动的功能。
(setq scroll-conservatively most-positive-fixnum)
这么配置就不会在滚动的时候跳动了
事实上我需要的是这样的功能
就像Sublime 一样,末尾就是末尾,没法再往下移动了(键盘鼠标都没法滚动),而Emacs好像多了个Feature, 末尾之后可以继续往下用鼠标滚,可能是为了方便编辑吧
我认为是个好的 feature:
比较容易让用户意识到,已经到末尾了。如果到达末行不允许继续滚动,我首先怀疑鼠标坏了?应用死了?除非看到类似 ;;; foo.el ends here
这种标识,才意识到:噢,到末尾了… iOS 的边界橡皮筋回弹效果,应该基于这种考虑。
把末行移到屏幕中间,首先减少视线移动的距离。其次,接着往末尾追加内容的时候,下边有半屏的空白,而不是在屏幕底部一行一行的挤牙膏,感觉很局促。
Vim,VSCode(我没设置,应该是默认就开启了)也有这个特性。Atom 等其它编辑器不知道有没有,也可能是默认关闭了。
富文本编辑器基本也有这样的设计。比如Scrivener。
如果是分不清空行,可以考虑用 indicate-empty-lines