Как мне получить мои какао-emacs в Mac OS X для загрузки моих визуальных настроек .emacs для новых окон (любой документ, открытый после первого)? - PullRequest
1 голос
/ 15 декабря 2009

Итак, я только что скачал emacs 23.1 для моего нового MacBook Pro из Snow Leopard из http://emacsformacosx.com/, и он работает как шарм, кроме ...

У меня есть визуальные настройки в моем .emacs, несколько строк извлечены здесь:

(установить цвет фона "черный")
(set-cursor-color "зеленый") (set-default-font "- -Lucida Console-normal-r-normal-normal-18- -96-96-c - * - iso10646-1")

У меня также установлены некоторые привязки клавиш, вот несколько строк из них

(глобальный набор ключей "\ C-l" `goto-line)

(global-set-key [(control?%)] `Query-replace-regexp)

При первом запуске emacs или открытии документа с помощью emacs все загружается отлично. Когда я запускаю команду-N или открываю другой файл через поиск, открывается новое окно с загруженными настройками привязки клавиш, но без визуальных настроек (включая размер окна и т. Д.)

Я думаю, это как-то связано с тем, как вызывается emacsclient и с сервером emacs, но, несмотря на то, что я активно использую emacs для разработки, я совершенно не понимаю, когда нужно настроить сам редактор вне уровня .emacs. настройка

Вот потенциальные варианты поведения, которых я хотел бы достичь при открытии нового окна (с помощью команды n или открыв документ в Finder) в порядке предпочтения:

  1. Пусть в новом окне будет создан новый процесс emacs (а не просто новый буфер), чтобы я мог управлять несколькими проектами и перемещаться по ним, аналогично тому, как это делает textmate, используя один процесс emacs для каждого проекта.

  2. Пусть эти визуальные настройки будут постоянными, чтобы каждое новое окно загружалось с правильными размерами, шрифтами и цветами.

  3. Каждый новый документ открывается в виде буфера в текущем активном окне emacs.

Дайте мне знать, если вы, ребята, можете помочь, спасибо!

Ответы [ 4 ]

2 голосов
/ 16 декабря 2009

ОК. Я разобрался, как это сделать (запустить новый сервер Emacs для каждого нового проекта) из терминала, я уверен, что было бы тривиально заставить его работать и из Finder, но так как я обычно в терминале в любом случае это работает для меня. Я только что добавил это к моему ~/.profile

function emacs-open() {
    /Applications/Emacs.app/Contents/MacOS/Emacs $1 &
}

тогда, когда вы хотите открыть файл в новом проекте (сервер emacs) со всеми настройками ur-фрейма и .emacs, загруженными правильно, это просто

$ emacs-open index.php

Я знаю, что некоторым это может показаться действительно очевидным, но, насколько я могу судить, это никуда не годится, когда вы достаете пакет из http://emacsformacosx.com/, так что, надеюсь, это кому-нибудь поможет

1 голос
/ 15 декабря 2009

Для настройки цветов необходимо внести изменения для кадров следующим образом:

(setq default-frame-alist
    `((background-color . ,background)
      (foreground-color . "lightcyan")
      (border-color . "lightskyblue1")
      (cursor-color . "palegoldenrod")
      (mouse-color . "azure")))

Что касается создания нового процесса Emacs при открытии документа в Finder, для этого вам просто нужно отключить сервер emacs и / или не использовать emacsclient. Просто установите его так, чтобы emacs вызывался напрямую для открытия файлов. Я не знаю, как настроить действия поиска ...

0 голосов
/ 15 декабря 2009

Что касается # 1, запустив новый процесс emacs, вы, вероятно, могли бы сделать это, написав сценарии для переопределения поведения по умолчанию. Это повлечет за собой захват пути к файлу и использование системного интерфейса Emacs для вызова нового экземпляра. Но вы можете попробовать какое-то время одно решение Emacs и посмотреть, не причинит ли вам слишком много боли.

0 голосов
/ 15 декабря 2009

Я нахожусь на Linux, но у меня есть такая работа. По сути, то, что я делаю в моем .emacs (, который см. Для подробностей ), это использование хука after-make-frame-functions:

(add-hook 'after-make-frame-functions
  (lambda (frame)
    (set-variable 'color-theme-is-global nil)
    (select-frame frame)
    ;;; set color theme and other visual things, like fonts
    ))

Одна вещь в том, что я set-variable 'color-theme-is-global, потому что мне нравятся разные темы для терминалов и окон. Теоретически, вы должны просто сделать (set-variable 'color-theme-is-global t), прежде чем устанавливать цвета, чтобы он работал.

Одна проблема, которую мне не удалось решить, заключается в том, что изменение размера шрифта не меняет стиль, поэтому я получаю странные эффекты «картинка в картинке», которые отвратительны и вынуждают меня максимизировать / повторно максимизировать мой кадр, что вид побеждает точку.

Я почти уверен, что добавление хуков / проектирование функций в правильном порядке должно избавить от этого, но мне не удалось заставить его работать некоторое время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...