Какой хороший способ иметь дело с немецкой клавиатурой при использовании Emacs в Mac OS X? - PullRequest
10 голосов
/ 02 февраля 2010

Может быть, немного странно задавать этот вопрос на английском, потому что моя проблема довольно неанглийская. Я пользователь Mac OS X и сейчас я нахожусь на пути к изучению Emacs. Я решил использовать сборку Emacs 23.1 Cocoa, в которой по умолчанию используется клавиша alt / option на клавиатуре Mac в качестве мета-клавиши. Но поскольку я немец, и я использую немецкую клавиатуру, конечно, довольно сложно вводить паратезы, которые необходимы для широкого программирования: { } [ ]

Чтобы получить эти символы на раскладке немецкой клавиатуры, вы должны нажать следующие клавиши:

alt-5 for '['
alt-8 for '{'

, которые в соответствии с описанной выше ситуацией переводят в

M-5
M-8

оба запускают команду digit-argument в Emacs.

Я не совсем уверен, как обойти эту проблему. Я знаю, что вы можете изменить фактический ключ, который следует использовать в качестве мета-ключа (например, я мог бы изменить мета-ключ на командный ключ). Но я думаю, что каждый выбор будет стоить и иметь некоторые очевидные недостатки, поскольку он «переопределяет» некоторые предопределенные поведения ОС, которые могут потребоваться при редактировании с помощью клавиатуры на иностранном языке.

На данный момент мне кажется, что лучше всего использовать клавишу CAPS LOCK в качестве мета-ключа, поскольку этот выбор не влияет на существующие комбинации клавиш.

Как вы относитесь к этой проблеме? Используете ли вы (не на английском языке) английскую клавиатуру (раскладку) при кодировании? Разве вы не перепутали такие контекстно-зависимые раскладки клавиатуры? Или есть некоторые лучшие практики, какие клавиши использовать в качестве мета-клавиш на немецкой или подобной клавиатуре? Или даже некоторые параметры конфигурации?

Ответы [ 7 ]

7 голосов
/ 03 февраля 2010

Немного потренировавшись, вы можете мысленно переключаться между раскладкой клавиатуры США и DE - даже поменялись местами Y и Z через некоторое время. Я делал это годами, работая в Германии.

Но даже при раскладке клавиатуры в США все еще есть символы, которые нельзя ввести без Alt. По этой причине я лично использую Command как Meta, оставляя Alt / Option для встроенных OS X мертвых клавиш, например "alt-shift-2" => €, "alt-e e" => é:

  (setq mac-command-modifier 'meta
        mac-option-modifier 'none
        default-input-method "MacOSX")

Другой вариант - переместить «проблемные» клавиши, такие как {}, используя функцию перевода с клавиатуры.

3 голосов
/ 08 января 2011

Я понимаю, что это старый вопрос, но я только что перешел на Mac и у меня были похожие проблемы (хотя и с датской раскладкой клавиатуры).

В меню выберите Options -> Option, Command, Meta keys -> Right Option is Meta. Теперь вы можете использовать правую клавишу Alt в качестве мета, тогда как левая клавиша Alt остается нетронутой. Например. Вы можете использовать его для ввода «необычных» символов (что может быть не так необычно, если вы программист).

Существует также выбор ... Meta & German (и других языков), который может работать для вас. Увы, на датском языке выбора нет, поэтому мне придется придерживаться Right Option is Meta

2 голосов
/ 02 февраля 2010

Вы можете нажать «Command»; изменить ключ опции между мета-ключом и обычным ключом. Я полагаю, что вы даже можете сделать это в середине последовательности клавиш. Когда мне нужно ввести диакритические знаки в Emacs, я просто нажимаю «Command»; вместо того, чтобы использовать различные режимы ввода в Emacs. Вы также можете получить доступ к настройке через Опции -> Опция -> Ключ опции - Мета.

Другой вариант - перепривязать ключи в вашем файле .emacs.

Говоря о переключении раскладок клавиатуры, я переключаюсь между Dvorak и US Qwerty достаточно часто, чтобы это меня не беспокоило, и они намного отличаются от раскладок в США и Германии. (Дворжак уменьшает напряжение рук для меня).

1 голос
/ 25 октября 2016

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

Я не хотел менять ключи meta и cmd (он же super), поскольку

  • IMHO emacs довольно хорошо поддерживает стандартные привязки Mac (например, cmd-s для сохранения) и
  • клавиша cmd остается доступной для личных ярлыков (например, я хочу убить буфер с помощью cmd-w)

Вот фрагмент конфигурации для перепривязки ключей только при работе на Mac:

(if (eq system-type 'darwin)
  (progn
    ;; "fix" the broken keyboard
    (global-set-key "\M-l" '(lambda () (interactive) (insert "@")))
    (global-set-key "\M-5" '(lambda () (interactive) (insert "[")))
    (global-set-key "\M-6" '(lambda () (interactive) (insert "]")))
    (global-set-key "\M-7" '(lambda () (interactive) (insert "|")))
    (global-set-key "\M-/" '(lambda () (interactive) (insert "\\")))
    (global-set-key "\M-8" '(lambda () (interactive) (insert "{")))
    (global-set-key "\M-9" '(lambda () (interactive) (insert "}")))
    (global-set-key "\M-n" '(lambda () (interactive) (insert "~")))))

Плюсы / минусы:

  • (+) Вы сохраняете привязки по умолчанию для ключей mac cmd и ключей meta emacs.
  • (-) Вы явно потеряете привязки по умолчанию для переназначенных ключей.
  • (?) Если из-за мышечной памяти вы случайно нажали клавиши на английской клавиатуре, все равно будут вставлены «правильные / предполагаемые символы».

Это было принято из несколько устаревшей информации в emacswiki.org .

1 голос
/ 09 ноября 2012

В итоге я воспользовался предложением здесь . Он рекомендует использовать это в вашей конфигурации emacs

(setq ns-right-alternate-modifier nil)

для сброса поведения по умолчанию в emacs для правой клавиши alt / option. Это удерживает emacs от реакции на этот ключ, позволяя ОС работать с ним так, как обычно.

Я считаю, что это хорошее решение, потому что оно согласуется с решением, которое работающие на моей работе люди внедрили в iTerm, чтобы позволить им иметь как доступ к [] {} | \, так и использовать преимущества навигационных привязок командной строки bash. например, alt / meta-f, -b, -d и т. д.

Короче говоря, при использовании этой конфигурации единственной болью, которую мне пришлось испытать, было привыкание к использованию right-alt для [] {} | \ и т. Д. И left-alt для команд emacs.

Наконец, приведенная выше ссылка относится только к Aquamacs, но я могу подтвердить, что установка vanilla emacs для Homebrew также поддерживает эту опцию.

1 голос
/ 07 февраля 2010

Aquamacs (http://aquamacs.org/) - это версия Emacs для Mac. Они имеют предварительный просмотр (и ночные) на основе какао и Emacs 23.1.

Aquamacs имеет возможность перепривязывать опционную команду и мета на разных этапах между собственными привязками клавиш Mac и собственными привязками emacs. Вы должны быть в состоянии найти сцену, которая подходит вашим пальцам.

0 голосов
/ 30 января 2012

Вы можете использовать конфигурацию emacs 22, которая раньше работала просто отлично.

(setq mac-option-key-is-meta nil) 
(setq mac-command-key-is-meta t) 
(setq mac-command-modifier 'meta)
(setq mac-option-modifier nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...