Невозможно ввести скобки и квадратные скобки в Emacs

Я использую Mac OS X и GNU Emacs 22.3.1. Я использую шведскую клавиатуру. Я не могу набрать фигурные скобки {}, [] в Emacs. При попытке ввести скобки я получаю скобки. Так как я довольно новичок в Mac и emacs, мне нужна небольшая помощь по настройке emacs, чтобы сделать это правильно.

9 ответов

Решение
(setq mac-option-modifier nil
      mac-command-modifier 'meta
      x-select-enable-clipboard t)

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

Вы также можете попробовать:

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

Я предполагаю, что вы используете графический emacs, а не просто используете версию OS X из терминала.

Чтобы убедиться, что Emacs реагирует на нажатия клавиш так же, как и другие приложения OS X, попробуйте следующее:

(setq default-input-method "MacOSX")

И, в частности, если вы хотите использовать клавишу Option для ввода расширенных символов не на клавиатуре (например, "Option-c c" => "ç"), используйте эти настройки:

(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'none)

(Поместите эти команды в файл запуска ~/.emacs или ~/.emacs.d/init.el emacs и перезапустите Emacs или просто "Mx eval-buffer" при редактировании файла.)

(setq default-input-method "MacOSX")

(setq mac-command-modifier 'meta
      mac-option-modifier nil
      mac-allow-anti-aliasing t
      mac-command-key-is-meta t)

Попробуй это. Вы сможете использовать клавишу Alt в качестве AltGR, и для всех старых функций Mx вам придется использовать вашу командную клавишу.

Свяжите соответствующие сочетания клавиш с анонимными функциями, которые вставляют эти символы, например, добавьте эти строки в ~/.emacs для европейского португальского:

(global-set-key "\M-(" (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 "]")))

Затем сохранить ~/.emacs с C-x C-s и перезагрузите его с M-x load-file и введите ~/.emacs,

Недостатком является то, что это не работает в мини-буфере, и ввод "Alt-9" вставит текст в буфер, а не в мини-буфер.

Сравнение с другими решениями: это решение поддерживает совместимость с другими ярлыками, используя M-, Решения @monotux, @sanityinc и Abdul Bijur V A работают, но они не поддерживают эту совместимость, например Cmd-Q больше не выходит из программы и M-x больше не вызывает мини-буфер для выполнения команд.

Решение @patrikha не подходит для сенсорного набора текста, для которого требуются одинаковые команды-модификаторы справа и слева от клавиатуры (Command, Alt/Option, Shift и Control). Например, с этим решением M-x требуется большой палец слева Alt ключ и левый указательный палец на S ключ, вместо правого большого пальца справа Alt ключ. Вы могли бы (setq mac-left-option-modifier nil), но это может потребовать изменения привычек для букв на правой стороне клавиатуры.

Примечания: Если вы используете AquaMacs, в вики есть обходной путь в разделе "Ввод {}[] и т. Д. На неанглоязычных клавиатурах или других клавишах с модификатором Option".

Я также добавляю эту строку в конец ./emacs показать соответствие скобок и скобок: (show-paren-mode),

Использование Aquamacs:

В главном меню выберите "Параметры" - "Параметры", "Команда", "Метаклавы" и выберите "параметр для составных символов".

Скобки и скобки работают как со стандартной клавиатурой Mac.

Я бы попробовал Emacs на основе Какао, то есть версию 23. Для интегрированных в Mac Emacs я бы попробовал Aquamacs

У меня была такая же проблема с французской клавиатурой. Это похоже на проблему Aquamacs (Carbon Emacs не заменяет {на ()).

Изменения в emacs выше работают нормально, и я могу набирать скобки, но я больше не могу использовать стандартные ярлыки (например, Ctrl+C/Ctrl+V).

Aquamacs предоставляет обходной путь. Строка меню> Параметры> Параметры, Команда, Мета-клавиши> Выбрать... Мета и французский

Это работало нормально для меня. Однако это может не работать для шведской, без шведской клавиатуры.

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

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