Подтвердить что ты не робот

Что означает "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 по-прежнему проглатывает комбинацию клавиш, что не идеально.

4b9b3361

Ответ 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)

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