На что ссылается s- [keyname] в Emacs, и как я могу сказать Emacs игнорировать его? - PullRequest
23 голосов
/ 30 августа 2009

Справочная информация:

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

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

Итак, две части:

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

РЕДАКТИРОВАТЬ: так 1) решен, и что касается 2) Я получил: (global-set-key (kbd "<s-return>") 'ignore), что по крайней мере останавливает ошибку. Однако Emacs по-прежнему проглатывает комбинацию клавиш, что не идеально.

Ответы [ 4 ]

22 голосов
/ 30 августа 2009

Это Суперключ , например M- - это мета-клавиша (клавиша alt на клавиатуре ПК, клавиша Command на клавиатуре), а C- - клавиша управления.

Конечно, я никогда не видел супер клавиш на моей клавиатуре ... они давно ушли в прошлое. В Википедии есть изображение этой впечатляющей «Клавиатуры космического кадета» , в которой есть все модификаторы, которые вам когда-либо понадобятся:

image

8 голосов
/ 24 января 2012

С простым Emacs 23.1 на Macbook Pro я могу сопоставить правильный ключ опции с super на

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

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

Левые могут захотеть изменить это.

2 голосов
/ 14 января 2011

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

Что касается максимизации окон, не могли бы вы попробовать это? (Должно работать, если 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. И выдергивание из буфера обмена Х - отличная способность иметь.

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

1 голос
/ 01 сентября 2009
(setq ns-command-modifier nil)

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

...