Каковы хорошие практики для совместного использования GNU emacs и xemacs? - PullRequest
3 голосов
/ 05 июня 2009

Я хотел бы сделать постепенный переход с GNU Emacs на Xemacs. Есть ли уловки, которые я могу использовать, чтобы эти двое играли хорошо?

В настоящее время я вижу следующие проблемы:

xemacs изменяет .emacs Эти два файла не похожи друг на друга .elc.

Спасибо!

Ответы [ 4 ]

6 голосов
/ 05 июня 2009

Интересно, что большинство из них движутся в другом направлении, так как я считаю, что XEmacs довольно неактивен (основываясь на активности списка xemacs-announce). Простые пакеты могут сосуществовать, но многие люди перестали заставлять свои пакеты работать как в XEmacs, так и в Emacs.

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

(if (not (fboundp 'tags-table-files))
    (defun tags-table-files ()
      (tag-table-files tags-file-name)))

Другие вещи были запущены в варианте Emacs, который я сохранил в переменной GNU:

(setq GNU (not (string-match "XEmacs\\|Lucid" (emacs-version))))
(if GNU 
    (do-emacs-thing)
  (do-xemacs-thing))

Я хранил скомпилированные файлы .emacs и сделал это:

(setq compiled-dot-emacs-name (format ".emacs-%d%s" emacs-major-version 
                                                    (if GNU "" "X")))

Что касается скомпилированных пакетов, я бы, вероятно, сохранил все файлы .el в одном каталоге (скажем, emacs-lisp), но имел бы вариант xemacs (xemacs-lisp) с символическими ссылками на файлы .el. А затем вы просто байтово компилируете каждый каталог из соответствующего варианта Emacs и убедитесь, что ваш путь загрузки указывает на правильный путь.

В вики Emacs есть страница на Emacs против XEmacs , которая может послужить хорошей отправной точкой для поиска других советов по их сожительству. В частности, есть страница для , настраивающая оба .

4 голосов
/ 05 июня 2009

Я не использую xemacs, но более новые GNU emacs также проверит на .emacs.d/init.el, поэтому, возможно, перемещение .emacs в init.el имеет смысл. Кроме того, вы можете связать его с .xemacs/init.el, если вам удастся сохранить настройки, применимые к обоим.

Существует также обсуждение того, что emacs предпочитает на emacswiki .

3 голосов
/ 06 июня 2009

Я начал медленный переход от Xemacs к Emacs некоторое время назад. Я сейчас использую оба на ежедневной основе. Чтобы сделать переход более плавным (один набор файлов инициализации), я украл следующий файл .emacs из http://xemacs.seanm.ca/_emacs (но ссылка теперь не работает).

(setq user-init-file
      (expand-file-name "init.el"
                        (expand-file-name ".xemacs" "~")))
(setq custom-file
      (expand-file-name "custom.el"
                        (expand-file-name ".xemacs" "~")))

(if (file-exists-p user-init-file)
    (load-file user-init-file))
(if (file-exists-p custom-file)
    (load-file custom-file))

Мой ~ / .xemacs / init.el начинается с:

(unless (boundp 'running-xemacs)
  (defvar running-xemacs nil))
(setq load-path (cons "~/.elisp" load-path))             ; packages for both emacsen
(if running-xemacs
    (setq load-path (cons "~/.elisp/xemacs" load-path))  ; packages for Xemacs only
  (setq load-path (cons "~/.elisp/gnuemacs" load-path))) ; packages for Gnuemacs only

С этого момента довольно очевидно, что у меня есть (случайное (если работает xemacs) ...). Я также удалил все файлы .elc из ~ / .elisp, но полагаю, что предложение Трея Джексона сработает.

2 голосов
/ 05 июня 2009

в современных системах я больше не вижу необходимости в предварительно скомпилированных файлах elisp. Преимущество в том, чтобы смотреть и на лету менять .el-файлы, намного выше.

.emacs: поместите свои собственные определения в .emacs_startup (или какое имя вы предпочитаете) и поместите туда все ваши вещи gnu-enmacs и поместите условную загрузку в ваш .emacs

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