如何将前缀参数移动到Emacs中的其他键?

nin*_*udd 13 colemak emacs

我正在使用备用键盘布局(Colemak),我想将universal-argument命令移动到Emacs中的其他键,C-l而不是C-u.我尝试了以下内容,但它不允许我将多个通用参数链接在一起乘法(C-l C-l C-l)并且它C-l C-u也会断开(它应该向上移动4行):

(global-set-key "\C-l" 'universal-argument)
(global-set-key "\C-u" 'previous-line)
Run Code Online (Sandbox Code Playgroud)

Tre*_*son 16

使用prefix参数时,Emacs会临时使用键映射来处理通用参数功能.所以,你需要做出你在那里做出的改变:

(define-key universal-argument-map "\C-l" 'universal-argument-more)
(define-key universal-argument-map "\C-u" nil)
Run Code Online (Sandbox Code Playgroud)

第一个设置C-l为继续universal-argument,第二个未定义C-u从该映射b/c您不再希望它是通用参数.