Мой .emacs
конфигурационный файл становится все больше и больше, и я хотел бы получить лучший обзор и структурирование, добавив заголовки, подзаголовки и возможность скрыть или показать их, как я могу сделать с Emacs org-mode
.
Я заметил, что я могу активировать org-mode
также в .emacs
буфере и что можно добавить заголовки и свернуть их. Но сможет ли Emacs / Aquamacs по-прежнему загружать код Elisp из документа, если я добавлю org-mode
заголовки (т. Е. Строки, начинающиеся с одной или нескольких звездочек)?
Могу ли я иметь все это в одном файле или мне нужно иметь один .*org
файл, а затем регулярно экспортировать код Elisp в другой файл?
источник
org
версию из elpa вместо того,org
что доступно в чистом emacs? Кажется,package
код инициализации нужно извлечьsettings.org
и вставить вinit.el
?init.el
:(require 'package) (package-initialize) (setq custom-file "~/.emacs.d/custom.el") (when (file-exists-p custom-file) (load custom-file)) (require 'org) (org-babel-load-file (expand-file-name "settings.org" user-emacs-directory))
Если все, что вам нужно, это выборочное отображение разделов и навигация между заголовками, вам не нужен режим Org. Все, что вам нужно, это режим Outline . Режим Outline - это, в основном, уровень заголовка и управление видимостью раздела в режиме Org. Фактически, режим Org изначально был авторским расширением для режима Outline, и рос, и рос, и рос… Даже сегодня
org-mode
происходит отoutline-mode
.Режим Outline существует как основной и второстепенный режимы. Дополнительный режим можно использовать в любом основном режиме. Вы можете настроить его для использования формата заголовка, который совместим с синтаксисом вашей программы, и многие основные режимы делают это, устанавливая для
outline-regexp
переменной регулярное выражение, соответствующее началу заголовка. Например, это значение по умолчанию в режиме Emacs Lisp:то есть заголовки разделов начинаются с трех или более точек с запятой и одного пробела или открывающей скобки в левом поле. Переменная
outline-level
содержит имя функции для определения глубины заголовка; значение по умолчанию - длина строки, с которой совпадаетoutline-regexp
, и режим Emacs Lisp переопределяет ее, чтобы назначить большую глубину(
и;;;###autoload
.Если вам не нравится формат заголовка по умолчанию, установите переменную
outline-regexp
в объявлении локальной переменной файла . Это то, что я использую - мои заголовки разделов состоят из;;;
классической последовательности звезд:Если вы хотите, чтобы вспомогательный режим Outline автоматически включался при загрузке файла, добавьте следующую строку в раздел Local Variables - обратите внимание, что это предупредит вас о небезопасном коде в Emacs ≤23.x.
Команды для режима вспомогательного контура
C-c @
по умолчанию используют довольно неудобный префикс. Я перемещаю его вM-o
(я никогда не использую привязки FaceMenu), вы можете предпочесть другую клавишу или реплицировать привязки режима Org (которые немного отличаются от режима Outline).источник
Грамотное программирование поможет вам в этом, org-mode поддерживает его через org-babel . Два возможных решения описаны в блоге @malabarba :
Самый простой способ - загрузить org-mode, а затем использовать его распутывающую функцию для загрузки грамотной конфигурации Emacs:
В качестве альтернативы (чтобы избежать полной загрузки org), распутывание можно выполнить с помощью примитивов Emacs Lisp:
источник
Еще один голос за контурный режим. Например, для упорядочивания
.emacs
я использую следующий синтаксис:важные части
;;;
и:\n
Вот пример
.emacs
:Нужно включить,
outline-minor-mode
а затем два необходимых нажатия клавиш:C-c @ C-t - показать структуру верхнего уровня
выше становится
C-c @ C-a - показать все снова
Типичное использование - показать структуру верхнего уровня, перейти к интересующему заголовку и снова показать все.
источник
#+STARTUP: overview
илиshow all
илиcontents
параметры.#
это не знак комментария, поэтому встроенный в emacs интерпретатор elisp будет сбит с толку, когда он нажмет#+STARTUP
или что-то в этом роде. (или я вас неправильно понял?)STARTUP
директиву внутриorgstruct-mode
, например, это был буфер R, но та же идея: emacs.stackexchange.com/a/8065/2443В следующем ответе SO вы увидите, как это сделать, например, проекты, использующие один или несколько org-файлов, каковы преимущества использования Cask и ссылки на документацию.
https://stackoverflow.com/questions/25430029/whats-the-best-way-to-package-my-emacs-installation-packages-and-config-so-tha/25430745#25430745
Я переключил свой конфиг на org несколько месяцев назад, и я не совсем доволен им. Требуется некоторая настройка и чтение руководства org, чтобы иметь полезный файл org, который облегчает редактирование кода elisp. Нужно включить распознавание блоков src (по умолчанию отключено -> использовать переменную для каждого файла), проверить, не конфликтуют ли другие режимы при редактировании блоков src (режим автозаполнения) и т. Д. Нельзя использовать Cc
(backtick) (
org-edit-src-block`) для редактирования блока src. И это немного мешает отладке.Мой совет: начните с разбивки файла инициализации на небольшие части elisp, попробуйте сузить пакет, используйте его
helm-swoop
для быстрой навигации, а затем подумайте об использованииorg-mode
.источник
Недавно я потратил некоторое время, чтобы сделать именно это. Я получил конфигурацию, которая - поддерживается в режиме org - использует 'use-package' для автоматической установки отсутствующих пакетов - это репозиторий github такого рода автоматической установки (бесстыдный плагин: https://github.com / pascalfleury / emacs-config )
Я «загрузил» несколько машин (Linux и Mac), клонировав репозиторий и добавив одну строку в ~ / .emacs et voila. Я настроен так, как мне нравится.
источник