2

我正在尝试使 Cv 绑定到一个函数,在该函数中它将光标向下移动一半的窗口高度,对此有什么帮助吗?

4

3 回答 3

3

我找到的最简单的方法:使用 View.el,它应该默认可用(至少对我来说是这样)。提示:http ://www.emacswiki.org/emacs/HalfScrolling

然后,做一些键绑定来改变默认行为。我的 Emacs 初始化文件现在包含:

;; Scroll only half-pages.
(require 'view)
(global-set-key "\C-v"   'View-scroll-half-page-forward)
(global-set-key "\M-v"   'View-scroll-half-page-backward)
于 2013-10-30T18:21:15.837 回答
2

来自http://www.emacswiki.org/emacs/HalfScrolling

默认情况下,Emacs 通过向上滚动和向下滚动几乎全屏滚动。我个人希望它一次滚动半页,但不幸的是无法弄清楚如何干净地做到这一点。

有一个 next-screen-context-lines 变量,它控制在按屏幕滚动时应保留多少行连续性。手头的问题可以通过将此变量设置为 window-height/2 来解决,但显然每次使用 next-screen-context-lines 时都应该计算它,因为 window-height 不是恒定的。

我想出的唯一可行的解​​决方案是以下糟糕的 hack。总比没有好,所以它来了:

(defun window-half-height ()
  (max 1 (/ (1- (window-height (selected-window))) 2)))

(defun scroll-up-half ()
  (interactive)
  (scroll-up (window-half-height)))

(defun scroll-down-half ()         
  (interactive)                    
  (scroll-down (window-half-height)))

(global-set-key [next] 'scroll-up-half)
(global-set-key [prior] 'scroll-down-half)

您应该能够更改它global-set-key以使用"\C-v"并获得您想要的东西。该页面上还有一些针对同一问题的其他解决方案,请查看。

于 2012-11-07T17:03:56.043 回答
2

如果这就是你想要做的,这将做到:

(global-set-key [(control ?v)]
 (lambda () (interactive (next-line (/ (window-height (selected-window)) 2)))))
于 2012-11-07T21:24:13.963 回答