Какие существуют соглашения по использованию C-x
, C-c
или в M-
качестве ключей префикс?
Например: C-x
и т. Д. Для сохранения или посещения буферов? И C-c
т. Д. Для редактирования текста?
Фон
Может быть, это глупый вопрос. Я использую испанскую клавиатуру и иногда переопределяю сочетания клавиш, которые являются общими для английской (QWERTY) клавиатуры. Например: команда оболочки связана с ванильным Emacs M-!
. M-¡
Вместо этого я связываю это , потому что M-!
есть M-shift-1
, на который я не могу легко нажать. Мне интересно, есть ли соглашения, которые я переопределяю, когда я делаю такого рода изменения
key-bindings
elisp-conventions
anquegi
источник
источник
M-x
«выполнить расширенную команду. Это шлюз ко многим сложным вещам, которые вы можете выполнять в Emacs в интерактивном режиме; он позволяет вам запускать любую функцию Elisp по имени». этоC-c
иC-x
нет описания , как это?Ответы:
Если вы говорите о привязке ключей для вашего собственного использования, то это правило: вы можете связывать любые ключи, которые вам нравятся.
Если вы хотите быть уверенным, что вы не привязали ключ, который уже может быть связан, используйте
C-c
за ним букву. Все такие ключи зарезервированы для пользователей (см. Далее).Если вы говорите о связывающих ключах в коде (например, в библиотеке), который вы пишете, для использования другими, то здесь описаны правила (соглашения): Соглашения о связывании ключей узла руководства Elisp.
Основные правила, касающиеся того, что вы спрашиваете, касаются
C-c
:Не определяйте
C-c LETTER
как ключ в программах на Лиспе. Последовательности, состоящие изC-c
буквы и буквы (в верхнем или нижнем регистре), зарезервированы для пользователей; они являются единственными последовательностями, зарезервированными для пользователей, поэтому не блокируйте их.Последовательности, состоящие из
C-c
следующего за управляющим символом или цифрой, зарезервированы для основных режимов.Последовательности , состоящие из
C-c
следует{
,}
,<
,>
,:
или;
также зарезервированы для основных режимов.Последовательности, состоящие из
C-c
любых других знаков препинания или символа ASCII, выделяются для второстепенных режимов. Использование их в основном режиме не является абсолютно запрещенным, но если вы это сделаете, привязка основного режима может иногда затеняться второстепенными режимами.Вы заметите, что нет никаких соглашений относительно
C-x
. Однако это негласное соглашение или просто хороший совет / практика: если вы замените какую-то существующую стандартную привязку Emacs (то есть ту, которую вы получите из Emacs как распределенную, без загрузки каких-либо сторонних библиотек), это может привести к путанице или раздражать некоторых пользователей вашего кода.Вы можете получить доступ к этому документу в Emacs следующим образом:
C-h i
, чтобы открыть Info, браузер документов.m el TAB RET
За м еню эль исп (TAB
в комплекте), или просто нажмите наElisp
ссылку с помощью мыши.key bi TAB
,n TAB RET
чтобы завершитьKey Binding Conventions
.Или вы можете использовать
i
в руководстве Elisp, чтобы завершить записи индекса:C-h i m el TAB RET
,i key bi TAB
, которая завершаетkey binding
и показывает вам две возможности:key binding
иkey binding, conventions for
. Наберите, TAB
для завершения до второго, затемRET
для подтверждения.источник
C-c
и отправлять команды пользователю. Таким образом, можно (почти) быть уверенным, что он не отменяет какую-либо другую привязку из основного режима, который уже установлен или будет установлен когда-нибудь в будущем.C-c
+ ПИСЬМА в библиотеке третьей стороной.@ Ответ Дрю гораздо более детальный и детальный.
Это совершенно правильный вопрос!
Существует соглашение, чтоC-x
зарезервировано самим emacs, тогда какC-c
префикс используется для пользовательских комбинаций клавиш.Посмотрите на это , особенно на раздел «Зарезервированные ключи». Я почти уверен, что эта информация также указана в руководстве по emacs, но я не могу найти ее прямо сейчас.Соглашения описаны в этом разделе руководства по emacs lisp.источник
C-c
сопровождаемый буквой (нижний или верхний регистр) без дополнительных модификаторов зарезервирован для пользователей. Многие другие последовательности клавиш, начинающиеся сC-c
, зарезервированы для основных режимов - особенно те, в которых вторая клавиша также модифицируется управляющей клавишей.M-x
«выполнить расширенную команду. Это шлюз ко многим сложным вещам, которые вы можете выполнять в Emacs в интерактивном режиме; он позволяет вам запускать любую функцию Elisp по имени». этоC-c
иC-x
нет описания , как это?