Отображение мертвых ключей, таких как "^" - PullRequest
10 голосов
/ 05 февраля 2012

В настоящее время я перевязываю почти все мои привязки Emacs, чтобы соответствовать моей новой раскладке клавиатуры, bépo, французскому эквиваленту дворака.

У меня проблемы с отображением моей клавиши ^.Ключ ^ является мертвым ключом, но не на материальном уровне.

Я хотел бы иметь возможность отобразить C-^, но в настоящее время он не работает.Поскольку «dead-circleflex» и «cirflex» - это две разные клавиши.

Если я это сделаю:

(global-set-key "C-^" 'next-line)

Затем, нажатие клавиши управления клавишей «^» делает следующее:

 <C-dead-circumflex> is undefined

У нас есть доказательство того, что Emacs видит мертвый обхват.Но мне все еще не удается сопоставить его.

Я знаю, что могу сделать

(global-set-key "^" 'next-line)

, и это сработает, если дважды нажать ^, но это не обходной путьЯ ищу.

Ответы [ 3 ]

3 голосов
/ 29 октября 2013

У меня просто была такая же досадная ошибка, но только при использовании графического интерфейса emacs, а не из терминала.Проблема с предлагаемым решением состоит в том, что ^ не единственный символ, не работающий.Для меня это было как минимум "и".

Из этой темы: https://bugzilla.redhat.com/show_bug.cgi?id=918740 Я обнаружил, что изменение XMODIFIERS с "@ im = ibus" на "" решило проблему.При поиске, где XMODIFIERS где установлен, я наткнулся на следующую проблему: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1125944 Оказывается, что удаление ~ / .config / ibus / bus, которое решает эту проблему, также решает проблему в emacs с мертвыми ключами

rm -rf ~/.config/ibus/bus
3 голосов
/ 06 февраля 2012

Сообщение об ошибке сообщает, какое имя Emacs использует для ключа. Вы можете передать эту строку в функцию kbd, чтобы связать ее.

(global-set-key (kbd "<C-dead-circumflex>") 'next-line)
2 голосов
/ 15 апреля 2015

Добавьте следующее к вашему ~/.emacs:

(require 'iso-transl)

Это решает проблему с неопределенными мертвыми ключами .

...