Как готовить Emacs в OS X

  emacs, OSX

Установка

Самая лучшая сборка Emacs для OS X устанавливается следующим образом (у тебя ведь уже есть homebrew, верно?):

brew tap railwaycat/emacsmacport
brew install emacs-mac --icon-modern
brew linkapps

Это свежий GNU Emacs с рядом патчей “под макось”.
Например, этот порт по-умолчанию меняет местами ⌘ и ⌥ в Emacs, потому что так удобнее. Но это отключается. А полный список патчей здесь.

Клавиатура под Emacs

Теперь займемся хардварной оптимизацией. Необходимо демонтировать клаву вашего макбука и заменить на… Да я шучу, конечно =)

Не обязательно, но рекомендую: для комфортной работы в Emacs надо немного поменять расположение самых часто используемых клавиш. А именно: нужно поменять местами левый control с caps lock (это почти обязательно), и правый контрол с return (желательно, чтобы не превратиться в осьминога).

Шутки шутками, а без этого не знаю смог бы ли я познать всю внутреннюю красоту емакса со сломанными пальцами.

Левый контрол с капсом легко меняются средствами системы. Ключ вот здесь:

caps-ctrl-swap

С правым контролом чуть сложнее – понадобится программа KeyRemap4MacBook. Зато она умеет много других полезных штук, например – переключаться на английский язык по одиночному нажатию левой клавиши ⌘, и на русский – по нажатию правой.

В KeyRemap4MacBook нужно включить опцию “Change Return Key > Return to Control_L”. При этом стандартная функция кнопки Return тоже сохраняется – срабатывает в том случае, если нажата только одна клавиша Return, без сочетания с другими. Правда ты же подсел на Emacs, теперь ты должен использовать только ⌃M, точнее сказать C-m, %username%.
Единственный неприятный момент – на такой Return не совсем адекватно реагирует Alfred. Но это было давно, может уже само починилось.

Emacs Mode в KeyRemap4MacBook

В этой программе есть целая группа опций под названием Emacs Mode. Она позволяет применять Emacs-like хоткеи для всей системы. На самом деле, во всех полях ввода OS X уже и так работают Emacs-like хоткеи. Но только основные, а эти опции могут сделать больше, например, транслировать ⌥W в ⌘C (для копирования в emacs-стиле).

EmacsClient

Для того, чтобы открывать файлы из командной строки в emacs, служит emacsclient, который устанавливается в /usr/local/bin, если ты воспользовался рекомендуемым мной способом установки Emacs. Это не относится к OS X, но на всякий случай уточнил, что он работает. Не забудь только сделать (server-start) в одном инстансе емакса.

Настройки OSX-only

Для тех, кто использует один конфиг Emacs на разных ОС, существует возможность задавать настройки локально. Для OS X это делается следующим образом:

(when (eq system-type 'darwin)
; ты знаешь что делать
)

Сразу рекомендую прописать туда:

(menu-bar-mode 1)

Дело в том, что любой уважающий себя емаксер сразу отключает тулбар, менюбар и, не редко, скроллбар. В емаксе это всё лишнее расходование экранного пространства, но вышеозначенная опция все-таки менюбар включает. Дело в том, что в OS X меню расположено в панели, а вот если его отключить, окно меняет свой тип и его уже не получится развернуть в фулл-скрин, а также будут проблемы с потерей фокуса.

Переключение языков в Emacs

Хорошо бы написать аналог программы emxkb для оконной системы OS X, чтобы удобно переключать языки ввода в Emacs. Подробнее про emxkb.

org-protocol

Org-mode это обалденный пакет. Если ты им пользуешься и тебе нужен рабочий org-protocol в OS X, то читай дальше.

Подробнее что зачем и почему написано вот здесь.

Реализация для Aquamacs здесь.

Реализацию для GNU Emacs из brew я сделал и положил сюда. Нужно просто скачать и положить в /Applications.

Есть ещё один нюанс: у меня в safari не работали букмарклеты для org-protocol пока я не заменил двойные слеши на одинарные, вот так:

javascript:location.href='org-protocol:/store-link:/'+encodeURIComponent(location.href)