Как вы перемещаете аргумент префикса в другой ключ в Emacs?

Я использую альтернативную раскладку клавиатуры (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 ответ

Решение

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

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

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

Другие вопросы по тегам