Как вы перемещаете аргумент префикса в другой ключ в Emacs? - PullRequest
13 голосов
/ 26 января 2011

Я использую альтернативную раскладку клавиатуры (Colemak) и хочу переместить команду universal-argument на другую клавишу в Emacs, Cl вместо Cu .Я попробовал следующее, но он не позволяет мне мультипликативно объединить несколько универсальных аргументов ( Cl Cl Cl ), и он тоже разбивает Cl Cu (что должно сдвинуться вверх на 4 строки):

(global-set-key "\C-l" 'universal-argument)
(global-set-key "\C-u" 'previous-line)

1 Ответ

16 голосов
/ 26 января 2011

Когда вы используете префиксный аргумент, Emacs временно использует таблицу ключей для обработки функциональности универсального аргумента.Таким образом, вам нужно внести изменения, которые вы сделали там тоже:

(define-key universal-argument-map "\C-l" 'universal-argument-more)
(define-key universal-argument-map "\C-u" nil)

Первый устанавливает Cl как продолжение universal-argument, а второй не определяет Cu с этой карты, потому что вы больше не хотите, чтобы это был универсальный аргумент.

...