如果区域滚动到视线之外,是否存在选择区域功能以保留选择?
我每天都会使用两种选定的区域。第一种是使用移位键在各种移动功能中使用交互式代码"^"
- 例如,左或右。第二种是set-mark-command
。在第一种情况下,当我向上或向下滚动时,取消选择突出显示的区域。在第二种情况下,如果所选区域在滚动时触摸窗口的顶部或底部,则突出显示的区域会更改/移动。
理想情况下,我想选择一个区域,然后可以自由地在缓冲区内从point-min移动到point-max。
答案 0 :(得分:2)
我认为没有这样的功能。事情是emacs在滚动时移动点(当点移出窗口时),这就是所选区域发生变化的原因。见question
答案 1 :(得分:2)
看起来很有希望:
https://sites.google.com/site/steveyemacsutils/multi-select-el
emacswiki.org上还有一个multi-region.el
答案 2 :(得分:1)
INITIAL (2014年3月4日):第一份草稿。 lawlist-mwheel-scroll
是对mwheel-scroll
中mwheel.el
的修改 - 主要修改是删除 (let ((newpoint (point))) (goto-char opoint) (deactivate-mark) (goto-char newpoint))
并将其替换为基于{的固定叠加层在向上或向下滚动之前立即{1}}和region-begin
。
编辑(2014年3月5日):修改后的region-end
行为更像lawlist-mwheel-scroll
,原本打算在mwheel-scroll
内。由于可以从左到右或从右到左选择区域,因此mwheel.el
可以位于所选区域的任一侧。因此,original-point
和region-begin
不会用于计算region-end
是否已移动 - 我们使用point
并在滚动后将其与潜在的新original-point
进行比较已经发生了。将先前函数(point)
的内容合并到函数lawlist-select-region
中,以便不再使用前者。
lawlist-activate-deactivate-mark
(global-set-key (kbd "C-c c") 'lawlist-copy-selected-region)
(global-set-key (kbd "C-SPC") 'lawlist-activate-deactivate-mark)
(global-set-key [(wheel)] 'lawlist-mwheel-scroll)
(global-set-key [(wheel-down)] 'lawlist-mwheel-scroll)
(global-set-key [(wheel-up)] 'lawlist-mwheel-scroll)