Как написать символ тильды (~) в 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: Параметры -> Параметры команды Мета-ключ -> Мета и французский?
C-x 8 '
за которым следует гласная по вашему выбору, это для меня. Если вы хотите, чтобы тильда двигалась в другом направлении, вы можете заменить ' на `.
Я не знаю, является ли это решение универсальным. Я использую Линукс.