Emacs, связать "конвертировать буфер в формат DOS" с клавишей F11 - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь связать эту серию команд

C-x RET f undecided-dos

на клавиатуре f11 . До сих пор я пробовал много вещей, таких как

\C-x RET \f undecided-dos

в моем файле .emacs, но безуспешно. Пожалуйста, покажите мне правильный синтаксис.

1 Ответ

2 голосов
/ 22 марта 2019

Если вы можете выполнить команду в интерактивном режиме, вы можете запросить Emacs, как называется выполняемая вами функция. Попробуйте M-x repat-complex-command и нажмите стрелку вверх один раз (или несколько раз, если вы в это время выполнили другие команды) или обратитесь за помощью по привязке клавиш:

C-h k C-x RET f

=> set-buffer-file-coding-system

К сожалению, вы не можете привязать это непосредственно к нажатию клавиши:

;;;; BROKEN
(global-set-key (kbd "<f11>") '(set-buffer-file-coding-system 'dos-undecided))

... потому что когда вы пытаетесь запустить это, вы сталкиваетесь с

Wrong type argument: commandp, (set-buffer-file-coding-system (quote dos-undecided))

Вы можете обойти это, указав interactive форму вокруг него:

(global-set-key (kbd "<f11>")
  (lambda ()
    (interactive "*")
    (set-buffer-file-coding-system 'undecided-dos)))

Аргумент "*" для interactive говорит, что он разрешен только в буферах, для которых у вас есть разрешение на изменение.

...