2009-08-30 2 views
22

Фоновая информация:Что означает «s- [keyname]» в Emacs, и как я могу сказать Emacs игнорировать его?

Я нахожусь на Mac, и я только что перешел на Emacs 23.1 через http://emacsformacosx.com/. Есть несколько проблем, особенно отсутствие возможности полного экрана.

Я попытался обойти этот последний вопрос, установив Megazoomer, который добавляет глобальный менеджер ввода, связанный с Cmd-return. Это приводит к тому, что в настоящее время приложение в прямом направлении максимизируется. Тем не менее, Emacs сообщает, что <s-return> is undefined. Я никогда не видел упомянутого выше s-[key], и Google не отвечает с ответом.

Таким образом, две части:

  1. Что s-[key] значит? Это чисто для моего удовлетворения; и
  2. Могу ли я сказать Emacs, чтобы игнорировать эту комбинацию клавиш и позволить комбинации клавиш переносить систему (так что, надеюсь, я смогу снова получить полный экран Emacs)?

EDIT: так 1) разрешен, а что касается 2) у меня есть: (global-set-key (kbd "<s-return>") 'ignore), что по крайней мере останавливает ошибку. Тем не менее, Emacs по-прежнему проглатывает комбинацию клавиш, что не идеально.

+0

Если вы новичок в Mac, вы можете попробовать Aquamacs. F7 (или m-X aquamacs-toggle-full-frame) переключает полноэкранный режим. – Greg

+0

Я не новичок в Mac, я новичок в Emacs. И я пробовал Aquamacs, и мне это не понравилось. Спасибо, в любом случае. –

+0

Итак, у меня есть: (global-set-key (kbd "") 'ignore) что означает, что я больше не получаю сообщение об ошибке, но Emacs по-прежнему проглатывает комбинацию. :( –

ответ

21

Это Super key, как M- - это ключ Мета (клавиша Alt на клавиатуре ПК, клавиша команды на клавиатуре) и C- - это клавиша управления.

Я, конечно, никогда не видел супер ключа на моей клавиатуре ... они из давно ушедшей эпохи. В Википедии есть изображение этого впечатляющего "Space Cadet keyboard", который имеет все модификаторы рунета:

+1

Мне очень понравилось бы иметь один из них в настоящее время. +1 для рисунка. – Jonathan

+1

Я тоже представляю себе, up и thumbs-down на вашей клавиатуре! Не говоря уже о четырех римских цифрах ... :-) –

+0

Удивительно, спасибо за это. Вы бы не узнали, как я могу сказать Emacs отказаться от этой комбинации, хотя ...? –

1
(setq ns-command-modifier nil) 

Это должен делать то, что вы хотите. Тем не менее, это имеет несколько непредсказуемое поведение на машине, когда я проверяю его, поэтому будьте осторожны.

2

Для вопроса о том, что означает s- [ключ], в поле ubuntu это означает ключ в форме Windows®. Что это значит для OSX-систем, я не знаю.

Что касается максимизации окон, не могли бы вы попробовать это? (Он должен работать, IIF OSX работает Х-сервер где-то под всем этим)

(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 компьютеров. И янки из буфера обмена X - это аккуратная способность иметь.

Как установить привязки клавиш, используйте глобальный набор ключей для независимых от режима привязок. (Добавьте его в ваш .emacs файл, если вы хотите быть постоянными.)

7

С равнинной Emacs 23.1 на Macbook Pro, я могу карту правой клавишой опция для super по

(setq ns-right-option-modifier 'super) 

Ваших другим выбор, по-видимому, является функциональным ключом, который будет ns-function-modifier.Однако fn может иметь другие функции, тогда как по умолчанию Emacs должен отображать ns-right-option-modifier в ’left (т. Е. Тот же эффект, что и левый ключ опции, который я должен в любом случае получить символ #!), Поэтому правильный вариант ключ в какой-то степени избыточный.

Левые могут хотеть обратить вспять это.

Смежные вопросы