在 Emacs/Windows 中平滑滚动

在 Emacs/Windows 中平滑滚动

正如主题标题所说,有人对如何在 emacs 中实现文本显示的平滑滚动有什么建议吗?

Emacs wiki 上建议的各种方法似乎只适用于 Linux。我使用的是 EmacsW32,但我也用标准 Emacs 发行版进行了测试,但没有结果。

作为长期的 V​​im 用户,我非常惊讶 Emacs 无法自行流畅滚动。

答案1

作为一名长期的 emacs 用户,我很少想到使用鼠标滚轮进行滚动……然而,其他人却这么做了。有一个页面平滑滚动在 emacs wiki 上。

更新:我在NextLineBehavior页面:“更改scroll-conservatively为 1 或其他适当小的数字,而不是零。”

答案2

在我的搜索中我发现了这一点:

(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 的维基

答案3

不完全确定你所说的平滑滚动是什么意思..但这是我使用的:

(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 构建,这可以正常工作。

答案4

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

我用它来滚动。我记得我只是从 SO 复制了这个。

相关内容