Как написать символ тильды (~) в Emacs на Mac OS X?

Я привык писать символы ~, нажимая Alt+N в Mac OS X. Это не работает в Emacs. Клавиша Alt+N, кажется, привязана к истории команд. Итак, мой вопрос, как написать ~ символ в Emacs на Mac OS X?

РЕДАКТИРОВАТЬ: я использую Aquamacs.

6 ответов

Решение

Вы всегда можете открыть "просмотрщик символов", выбрать пунктуацию, найти "~" (тильда), а затем дважды щелкнуть по нему. Это вставит его в точку Emacs. ("Средство просмотра символов" легко доступно после проверки "Показать средства просмотра клавиатуры и символов в строке меню" на панели "Клавиатура" в окне "Системные настройки".)

Вы также можете определить функцию emacs-lisp как:

(defun tilde () (interactive) (insert "~"))

а затем вызвать его с M-x tilde вставить тильду. Затем можно назначить эту функцию для комбинации клавиш по вашему выбору как

(global-set-key "\M-\C-!" 'tilde)   ;; you choose the combo

и добавьте все это в ваш файл 'emacs init'.

Хотя этот вопрос довольно старый, ни один из ответов не кажется удовлетворительным для Emacs для OS X (самый популярный вариант в наши дни). Итак, для будущих читателей...

Обычный Emacs для OS X по умолчанию использует обе клавиши Alt в качестве мета. Поскольку многие символы набираются с помощью Alt на немецкой клавиатуре Mac (тильда, скобки, фигурные скобки и т. Д.), Я бы порекомендовал установить ns-right-alternate-modifier в nil, который позволяет набирать тильду (Alt-n) и другие символы, используя правую клавишу Alt, а левый можно использовать как мета (как для M-x).

В качестве альтернативы Cmd может быть настроен как Meta. Все параметры могут быть настроены в интерактивном режиме под M-x customize-group ns,

К сожалению, ответ от fpbhb не работает при запуске emacs в терминале (emacs -nw).

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

Этот фрагмент правильно связывает левый ключ опции с "META" при запуске emacs как приложения (т.е. не в терминале). Он не привязывает правильный ключ опции, который можно использовать для ввода специальных символов:

(setq mac-command-key-is-meta nil
      mac-command-modifier nil)
(setq mac-option-key-is-meta t
      mac-option-modifier 'meta
      mac-right-option-modifier nil)

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

Настройки терминала -> Клавиатура -> Использовать опцию как мета-ключ

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

Я решил эту последнюю проблему, добавив отсутствующее сопоставление клавиш в мой.emacs:

(define-key key-translation-map (kbd "M-ñ") (kbd "~"))
(define-key key-translation-map (kbd "M-º") (kbd "\\"))
(define-key key-translation-map (kbd "M-2") (kbd "@"))

Вуаля.

Aquamacs: Параметры -> Параметры команды Мета-ключ -> Мета и французский?

quoted-insert должен иметь дело с этим.

CqAlt-N

C-x 8 'за которым следует гласная по вашему выбору, это для меня. Если вы хотите, чтобы тильда двигалась в другом направлении, вы можете заменить ' на `.

Я не знаю, является ли это решение универсальным. Я использую Линукс.

Другие вопросы по тегам