在Emacs / Windows中平滑滚动


2

就像主题标题所说的那样,是否有人对如何在emacs中实现文本显示的平滑滚动提出任何建议?

Emacs Wiki上建议的各种方法似乎仅在Linux中有效。我正在使用EmacsW32来解决问题,但是我也使用标准Emacs发行版进行了测试,但没有结果。

作为Vim的长期用户,我很惊讶Emacs本身无法平滑滚动。

Answers:


3

作为emacs的长期用户,我很少考虑使用鼠标滚轮进行滚动……但是,其他人也有。emacs Wiki 上有一个有关平滑滚动的页面。

更新:我在NextLineBehavior页面上找到了一个更好的答案:“更改scroll-conservatively为1或其他适当的小数字,而不是零。”


好吧,我也不是说鼠标。只需使用标准Ctrl-N或键盘上的向下箭头键即可。但是正如我所提到的,Wiki内容根本不适用于Windows(向上方向是半容忍的,向下方向则完全不容忍)
Svend

2
有趣的东西。我必须习惯于标准的emacs行为,以至于我从未注意到它不会一次滚动一行。这是emacs,但是必须有一种自定义方式。
道格·哈里斯

可悲的是,该页面上提供的解决方案都无法在Windows中做任何事情(可能在Linux上可以运行,未经测试)。当我向下按一次时,它会起作用,但是如果我按下它,直到放开屏幕(滚动确实会移动...)后,屏幕才会更新,这显然根本没有用。
斯文德

我是Emacs的新手,几乎总是使用滚动。通常,您如何跳到需要调整的特定代码位?
但丁2012年

最常见的是增量搜索(C-s/ C-r),其次是大型导航命令(C-v/ M-v),然后使用每行或每个单词的跳转。
道格·哈里斯

0

在搜索中,我发现:

(setq default-truncate-lines t)
(defun point-of-beginning-of-bottom-line ()
  (save-excursion
    (move-to-window-line -1)
    (point)))

(defun point-of-beginning-of-line ()
  (save-excursion
    (beginning-of-line)
    (point)))

(defun next-one-line () (interactive)
  (if (= (point-of-beginning-of-bottom-line) (point-of-beginning-of-line))
      (progn (scroll-up 1)
             (next-line 1))
    (next-line 1)))

(defun point-of-beginning-of-top-line ()
  (save-excursion
    (move-to-window-line 0)
    (point)))

(defun previous-one-line () (interactive)
  (if (= (point-of-beginning-of-top-line) (point-of-beginning-of-line))
      (progn (scroll-down 1)
             (previous-line 1))
    (previous-line 1)))

(global-set-key (kbd "<down>") 'next-one-line)
(global-set-key (kbd "<up>") 'previous-one-line)

在aquamacs和mac os x中对我有什么帮助。也许对WIN也很有用。

我从emacs的Wiki上获取了它


0

不确定滚动平滑的意思..但这就是我使用的:

(global-set-key [(meta up)] '(lambda(amount) (interactive "p") (scroll-up amount)))
(global-set-key [(meta down)] '(lambda(amount) (interactive "p") (scroll-down amount)))

对于常规的GNU win32 emacs构建,这对我来说工作正常。


0
 ;;; scrollers
 (global-set-key "\M-n" '"\C-u1\C-v")
 (global-set-key "\M-p" '"\C-u1\M-v")

我用它来滚动。我记得我只是从SO复制了此内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.