我正试图让C-v绑定到一个函数,它将光标移动窗口高度的一半,对此有任何帮助吗?
答案 0 :(得分:2)
来自http://www.emacswiki.org/emacs/HalfScrolling:
默认情况下,Emacs通过向上滚动和向下滚动滚动几乎全屏幕。我个人希望一次滚动半页,但遗憾的是无法弄清楚如何干净利落地进行。
有一个next-screen-context-lines变量,它控制在屏幕滚动时应保留多少条连续线。手头的问题可以通过将此变量设置为window-height / 2来解决,但显然每次使用下一个屏幕上下文行时都应该计算它,因为窗口高度不是常数。
我想出的唯一可行的解决方案就是以下的sucky 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"
并获得您想要的内容。
针对同一问题的一些其他解决方案在该页面上,请查看。
答案 1 :(得分:2)
我发现最简单的方法:使用View.el,默认情况下应该可用(至少对我来说)。暗示:http://www.emacswiki.org/emacs/HalfScrolling
然后,执行一些键绑定以更改默认行为。我的Emacs init文件现在包含:
;; 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)
答案 2 :(得分:1)
如果这就是你想要做的,那就可以了:
(global-set-key [(control ?v)]
(lambda () (interactive (next-line (/ (window-height (selected-window)) 2)))))