我正在尝试使 Cv 绑定到一个函数,在该函数中它将光标向下移动一半的窗口高度,对此有什么帮助吗?
问问题
1317 次
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 回答