Я хочу, чтобы функция Emacs Lisp имела два разных поведения в зависимости от того, нажата ли клавиша управления или нет.Emacs - как определить, выключена ли клавиша управления
Есть ли способ запросить состояние ключа управления? Благодарю.
Я хочу, чтобы функция Emacs Lisp имела два разных поведения в зависимости от того, нажата ли клавиша управления или нет.Emacs - как определить, выключена ли клавиша управления
Есть ли способ запросить состояние ключа управления? Благодарю.
Там нет объекта для проверки текущего состояния ключа модификатора, но вы можете проверить, был ли использован последний ключ, используемый для запуска команды с «контролем» или нет:
(memq 'control (event-modifiers last-command-event))
Обратите внимание, что TAB и RET на самом деле такие же, как Ci и Cm, поэтому они рассматриваются как имеющие «контрольный» модификатор.
Спасибо Stefan. К сожалению, последнее командное событие - это выбор из меню, и это, похоже, не включает состояние ключей модификатора. Функция действия выбранного элемента меню - это код, который я хочу иметь модифицируемое поведение. – DawgBone
«Путь Emacs» должен был бы позволить C-u (или любому другому универсальному аргументу) изменять поведение. Вы можете выбрать это с помощью 'interactive' или' current-prefix-argument'. – Lindydancer