Вопрос

Я пользователь Mac, и я решил изучить Emacs.Я уже Читать чтобы уменьшить нагрузку на руки и повысить точность, CTRL и КОЛПАЧКОВЫЙ ЗАМОК ключи должны быть заменены.Как мне сделать это в Leopard?

Кроме того, в терминале я должен использовать ESC ключ для вызова meta.Есть ли какой-нибудь способ заставить клавишу alt / option вызывать meta вместо этого?

Обновить: Хотя теперь нажимать клавишу control намного проще, мета-клавиша также используется достаточно часто, поэтому ее расположение на моем MacBook и Apple Keyboard также заслуживает внимания.На самом деле, я обнаружил, что нажимать клавишу control на самом деле проще, поэтому я переназначил свою клавишу control, чтобы она действовала как мета-клавиша.У кого-нибудь есть лучшее / более стандартное решение?

Это было полезно?

Решение

Обмен CTRL и CAPS LOCK

<Ол>
  • Зайдите в Системные настройки
  • Введите Клавиатуру и усилитель; Мышь панель настроек
  • На вкладке Клавиатура нажмите Клавиши-модификаторы ...
  • Поменяйте местами действия для Caps Lock и Control .
  • alt text

    Использование ALT / OPTION в качестве META

    <Ол>
  • В строке меню нажмите Терминал
  • Нажмите Настройки ...
  • На вкладке Настройки перейдите на вкладку Клавиатура
  • Установите флажок Использовать параметр в качестве мета-ключа
  • alt text

    Вот и все! Вы должны быть на пути к тому, чтобы стать мастером Emacs!

    Другие советы

    Для справки, вот привязки клавиш для перемещения по тексту:

    & # 8997; + & # 8592; - переместиться влево на одно слово
    & # 8997; + & # 8594; - переместить вправо на одно слово
    & # 8997; + delete - назад удалить одно слово
    Shift + & # 8997; + delete - вперед удалить одно слово
    & # 8997; + & # 8593; - переместиться вверх на один абзац
    & # 8997; + & # 8595; - переместиться вниз на один абзац
    & # 8984; + & # 8592; - перейти к началу текущей строки
    & # 8984; + & # 8594; - перейти в конец текущей строки
    Shift + любой из вышеперечисленных расширений выбора на соответствующую величину

    Нажмите, затем перетащите - выберите текст
    Дважды щелкните, затем перетащите - выделите текст, завернув слова в конец
    Тройной щелчок, затем перетаскивание - выделение текста, перенос до конца абзаца

    Shift + выделение текста мышью - добавление к выделению (непрерывно)
    & # 8984; + выделение текста мышью - добавление к выделению (несмежное)
    & # 8997; + Drag - выбрать прямоугольную область (несмежную)
    & # 8984; + & # 8997; + drag - добавить прямоугольную область к выделению
    Перетащите выделение - переместите текст
    & # 8997; + перетаскивание выделения - копирование текста

    Ctrl + A - перейти к началу текущего абзаца
    Ctrl + B - переместить влево на один символ
    Ctrl + D - переслать удалить
    Ctrl + E - перейти в конец текущего абзаца
    Ctrl + F - переместить вправо на один символ
    Ctrl + H - удалить
    Ctrl + K - удалить остаток текущего абзаца
    Ctrl + N - перейти на одну строку вниз
    Ctrl + O - вставить новую строку после курсора
    Ctrl + P - перейти на одну строку вверх
    Ctrl + T - транспонировать (поменять) два окружающих символа
    Ctrl + V - перейти в конец, затем оставить один символ
    Ctrl + Y - вставить текст, ранее удаленный с помощью Ctrl - K

    Другой ответ был очень полным, но, кроме того, я бы упомянул, что просто установил крышку ключ ко второму управляющему ключу вместо их замены.

    Кроме того, вы заметите, что подавляющее большинство полей ввода текста в Mac OS X уже принимаем нажатия клавиш emacs (^ начало строки, ^ E конец строки, ^ P, ^ N, ^ K, ^ Y и т. д.)

    удачи

    Мне действительно нравится ответ, предоставленный Кайлом Кронином, но я хочу добавить одну вещь - убедитесь, что вы выбрали соответствующую клавиатуру, чтобы это работало. Если к ноутбуку подключена внешняя клавиатура, есть дополнительное раскрывающееся окно, и вам нужно будет сделать это для обеих клавиатур (или, по крайней мере, для внешней клавиатуры). На приведенном ниже снимке экрана показано " Выбрать клавиатуру " диалоговое окно - я выбрал «Совместная клавиатура Mac», что в MacBook означает внешнюю клавиатуру GoldTouch - по умолчанию используется встроенная клавиатура.
    Снимок экрана, показывающий диалоговое окно "Выбор клавиатуры"

    Как только я понял это - это прекрасно работает для меня!

    Если вы используете emacs по ssh-соединению или через компьютер, не расположенный на вашем локальном компьютере, кнопки page up / page down прокручивают буфер терминала - по моему опыту, не слишком полезно.

    Вы можете настроить кнопки page down и page up для отправки соответствующих команд в emacs.В emacs вы можете прокручивать буфер emacs следующим образом:

    • Страница Вверх:Ctl-v
    • Страница Вниз:Esc-v

    Итак, чтобы терминал отправил эти команды в emacs, следуйте приведенным выше инструкциям по изменению клавиш Alt для Meta.Однако вместо установки параметра "использовать опцию как meta" найдите параметры "страница вниз" и "страница вверх".

    Страница Вниз

    Дважды щелкните опцию "страница вниз", чтобы отредактировать ее.Изменение Экшен Для "отправить строку в оболочку" и войти \026 как струна.Сохрани это.

    Страница Вверх

    Дважды нажмите кнопку "открыть страницу", чтобы отредактировать ее.Изменение Экшен Для "отправить строку в оболочку" и войти \033в как струна.Сохрани это.

    Не уверен, что вы полностью женаты на использовании Emacs из терминала, но другой вариант - использовать Carbon Emacs (мой любимый) и Aquamacs (очень похожий на Mac). Carbon Emacs использует командную клавишу для мета, это хорошо, потому что вы можете выполнять команды Control-Meta, просто удерживая Control и Command, вместо того, чтобы сначала нажать escape, а затем последовательность клавиш управления.

    Кроме того, если вы серьезный пользователь Emacs, я настоятельно рекомендую вам приобрести клавиатуру, подходящую для программирования (она полностью перепрограммируется сама по себе). Я использую Kinesis, это немного денег, но они чрезвычайно долговечны и довольно хороши.

    Лично у меня есть настройка caps lock, которая ведет себя как команда в системных настройках, а затем в моем файле emacs init.el:

    (setq mac-command-modifier 'ctrl)

    и это позволяет мне использовать caps lock как команду в большинстве приложений для osx и как элемент управления в emacs. работает достаточно хорошо для меня.

    Ваша радость только начинается.Другие хитрости включают в себя:

    • Используйте клавиши shift влево и вправо, чтобы также быть (и ) для быстрого набора текста.
    • Переназначьте вашу клавишу fn или другую клавишу на "super".
    • Сделайте caps lock контрольным, но только с помощью другой клавиши.Само по себе это бегство.

    Прочтите превосходную статью по адресу http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ для получения гораздо большей информации.

    Этот поток был начат 5 лет назад, и в нем нет упоминаний о ns-win.el или сборке - with-ns . Вот все привязки клавиш, доступные (из коробки) в Emacs Trunk по состоянию на октябрь 2013 года. И, конечно, вы можете создать свою собственную. Лично у меня есть один init.el со всеми моими привязками клавиш, которые можно использовать с Windows XP через Parallels на OSX, а также с OSX. Поскольку пользователь может определять свои собственные сочетания клавиш, я не вижу необходимости переназначать клавиатуру в системных настройках (с клавиатурой Apple US) , если не используется клавиатура, не включающая клавишу Command. , Но могу ли я выбросить свой набор клавиатур IBM со щелчком со встроенным трекпоинтом? Конечно, нет. :) Я беру с собой свои кликабельные клавиатуры IBM в следующую жизнь. Любая деформация руки, скорее всего, вызвана неправильным положением запястья / руки / локтя, а не ударом по сравнению с блокировкой крышки. Точность повышается с помощью практики и с помощью босса, оглядывающегося через плечо, чтобы увидеть, как вы продвигаетесь - то есть, небольшое давление, чтобы быть более продуктивным:)

    (define-key global-map [?\s-,] 'customize)
    (define-key global-map [?\s-'] 'next-multiframe-window)
    (define-key global-map [?\s-`] 'other-frame)
    (define-key global-map [?\s-~] 'ns-prev-frame)
    (define-key global-map [?\s--] 'center-line)
    (define-key global-map [?\s-:] 'ispell)
    (define-key global-map [?\s-?] 'info)
    (define-key global-map [?\s-^] 'kill-some-buffers)
    (define-key global-map [?\s-&] 'kill-this-buffer)
    (define-key global-map [?\s-C] 'ns-popup-color-panel)
    (define-key global-map [?\s-D] 'dired)
    (define-key global-map [?\s-E] 'edit-abbrevs)
    (define-key global-map [?\s-L] 'shell-command)
    (define-key global-map [?\s-M] 'manual-entry)
    (define-key global-map [?\s-S] 'ns-write-file-using-panel)
    (define-key global-map [?\s-a] 'mark-whole-buffer)
    (define-key global-map [?\s-c] 'ns-copy-including-secondary)
    (define-key global-map [?\s-d] 'isearch-repeat-backward)
    (define-key global-map [?\s-e] 'isearch-yank-kill)
    (define-key global-map [?\s-f] 'isearch-forward)
    (define-key global-map [?\s-g] 'isearch-repeat-forward)
    (define-key global-map [?\s-h] 'ns-do-hide-emacs)
    (define-key global-map [?\s-H] 'ns-do-hide-others)
    (define-key global-map [?\s-j] 'exchange-point-and-mark)
    (define-key global-map [?\s-k] 'kill-this-buffer)
    (define-key global-map [?\s-l] 'goto-line)
    (define-key global-map [?\s-m] 'iconify-frame)
    (define-key global-map [?\s-n] 'make-frame)
    (define-key global-map [?\s-o] 'ns-open-file-using-panel)
    (define-key global-map [?\s-p] 'ns-print-buffer)
    (define-key global-map [?\s-q] 'save-buffers-kill-emacs)
    (define-key global-map [?\s-s] 'save-buffer)
    (define-key global-map [?\s-t] 'ns-popup-font-panel)
    (define-key global-map [?\s-u] 'revert-buffer)
    (define-key global-map [?\s-v] 'yank)
    (define-key global-map [?\s-w] 'delete-frame)
    (define-key global-map [?\s-x] 'kill-region)
    (define-key global-map [?\s-y] 'ns-paste-secondary)
    (define-key global-map [?\s-z] 'undo)
    (define-key global-map [?\s-|] 'shell-command-on-region)
    (define-key global-map [s-kp-bar] 'shell-command-on-region)
    ;; (as in Terminal.app)
    (define-key global-map [s-right] 'ns-next-frame)
    (define-key global-map [s-left] 'ns-prev-frame)
    
    (define-key global-map [home] 'beginning-of-buffer)
    (define-key global-map [end] 'end-of-buffer)
    (define-key global-map [kp-home] 'beginning-of-buffer)
    (define-key global-map [kp-end] 'end-of-buffer)
    (define-key global-map [kp-prior] 'scroll-down-command)
    (define-key global-map [kp-next] 'scroll-up-command)
    
    ;; Allow shift-clicks to work similarly to under Nextstep.
    (define-key global-map [S-mouse-1] 'mouse-save-then-kill)
    (global-unset-key [S-down-mouse-1])
    

    (не эргономичная клавиатура, но мне очень нравится перемещение клавиш и их чувствительность, и клавиша Control, Caps Lock меняются местами).

    http://matias.ca/osxkeyboard/index.php

    Я создал довольно полный набор привязок здесь для использования снаружи Терминала.

    Лично я не могу использовать клавиатуру Mac для ноутбука из-за отсутствия правильной клавиши управления.

    Вместо этого я использовал Microsoft Natural Ergonomic Keyboard 4000 для более 7 лет: у него действительно толстые, хорошо расположенные клавиши Ctrl и Alt и после загрузка драйверов в " Пуск " и " Приложение " клавиши тривиально переназначаются на клавишу Mac Cmd, которая также толстая и легко нажимается.

    Чтобы избежать проблем с эргономичностью в emacs, я научил себя использовать Ctrl, Alt и Cmd так же, как мы используем Shift - нажимая их рукой, противоположной той, которая набирает фактическую клавишу. (То есть я оставляю Caps Lock как есть.)

    Я установил caps lock для управления в системных настройках, и у меня в init.el есть следующее, чтобы установить команду в meta и опцию super:

    (custom-set-variables
     '(ns-alternate-modifier (quote super))
     '(ns-command-modifier (quote meta)))
    

    Я хотел бы рекомендовать 2 программного обеспечения Seil и карабинер . Просто установив Seil и следуя инструкциям в программном обеспечении, вы сможете добиться желаемого. Из моего опыта, Карабинер является более мощным. У меня японская клавиатура, раскладка которой отличается от обычной. У меня есть некоторый фрагмент , который переназначает две дополнительные клавиши на моей клавиатуре для F18 и F19 для другого использования. Вы можете использовать тот же синтаксис для редактирования вашего " private.xml " файл, чтобы делать больше вещей.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top