Что означает "s- [keyname]" в Emacs и как я могу сказать Emacs игнорировать его?
Фоновая информация:
Я нахожусь на Mac, и я только что обновился до Emacs 23.1 через http://emacsformacosx.com/. Есть несколько проблем, особенно отсутствие возможности полного экрана.
Я попытался обойти этот последний вопрос, установив Megazoomer, который добавляет глобальный менеджер ввода, привязанный к Cmd-return
. Это приводит к тому, что в настоящее время приложение в прямом направлении максимизируется. Однако Emacs сообщает, что <s-return> is undefined
. Я никогда не видел упоминавшегося ранее s-[key]
, и Google не отвечает с ответом.
Итак, две части:
- Что означает
s-[key]
? Это чисто для моего удовлетворения; и
- Могу ли я сказать Emacs игнорировать эту комбинацию клавиш и позволить комбинации клавиш переноситься в систему (так что, надеюсь, я смогу снова получить полный экран Emacs)?
EDIT: так 1) разрешен, а что касается 2) у меня есть: (global-set-key (kbd "<s-return>") 'ignore)
, который по крайней мере останавливает ошибку. Тем не менее, Emacs по-прежнему проглатывает комбинацию клавиш, что не идеально.
Ответы
Ответ 1
Это Супер ключ, например M-
- это мета-ключ (клавиша Alt на клавиатуре ПК, клавиша Command на клавиатуре) и C-
- это клавиша Control.
Я, конечно, никогда не видел супер ключа на моей клавиатуре... они из давно ушедшей эпохи. В Википедии есть изображение этого впечатляющего "Space Cadet keyboard" , в котором есть все модификаторы, которые вам понадобятся:
![800px-Space-cadet.jpg]()
Ответ 2
С простым Emacs 23.1 на Macbook Pro я могу отобразить правую клавишу выбора super
на
(setq ns-right-option-modifier 'super)
Другим выбором является функциональный ключ, который будет ns-function-modifier
. Однако fn может иметь другие применения, тогда как по умолчанию Emacs должен отображать ns-right-option-modifier
в ’left
(т.е. Тот же эффект, что и левый ключ опции, который мне в любом случае нужно получить символ #
!), Поэтому правый ключ опции в некоторой степени избыточен.
Левшам захочется отменить это.
Ответ 3
Для вопроса о том, что означает s- [key], в поле ubuntu это означает ключ в форме Windows®. Что это значит в OSX-системах, я не знаю.
Что касается максимизации окон, можете ли вы попробовать это?
(Он должен работать, iif OSX запускает X-сервер где-то под всем этим)
(if (equal (window-system) 'x)
(progn
(defun toggle-fullscreen ()
"Toggles fullscreen"
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))
(global-set-key (kbd "C-c C-y") 'x-clipboard-yank)
(global-set-key (kbd "M-RET") 'toggle-fullscreen)))
Этот маленький фрагмент - это то, что я использую для переключения полноэкранного режима на мои компьютеры * nix. И yanking из X clipboard - это аккуратная способность иметь.
Что касается того, как установить привязки клавиш, используйте глобальный набор ключей для независимых от режима привязок.
(Добавьте его в файл .emacs, если вы хотите, чтобы он был постоянным.)
Ответ 4
(setq ns-command-modifier nil)
Это должно делать то, что вы хотите. Тем не менее, он имеет несколько непредсказуемое поведение на машине, когда я его тестирую, поэтому будьте предупреждены.