Mój .emacs
plik konfiguracyjny staje się coraz większy i chciałbym uzyskać lepszy przegląd i strukturę, dodając nagłówki, podtytuły i mogąc je ukryć lub pokazać, tak jak mogę to zrobić w Emacsie org-mode
.
Zauważyłem, że mogę aktywować org-mode
również w .emacs
buforze i że można dodawać nagłówki i zwijać je. Ale czy Emacs / Aquamacs nadal będą mogły załadować kod Elisp z dokumentu, jeśli dodam org-mode
nagłówki (tj. Wiersze zaczynające się od jednej lub więcej gwiazdek)?
Czy mogę mieć to wszystko w jednym pliku, czy też muszę mieć jeden .*org
plik, a następnie regularnie eksportować kod Elisp do innego pliku?
źródło
org
wersję Elpy zamiastorg
tej dostępnej w czystym emacsie? Wygląda na to, żepackage
kod inicjalizacyjny musiałby zostać wyciągniętysettings.org
i wprowadzonyinit.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))
Jeśli wszystko, czego chcesz, to selektywne pokazywanie sekcji i nawigacja między nagłówkami, nie potrzebujesz trybu Org. Wszystko czego potrzebujesz to tryb konspektu . Tryb konspektu to zasadniczo poziom nagłówka i zarządzanie widocznością sekcji w trybie organizacji. W rzeczywistości tryb Org był pierwotnie rozszerzeniami autora do trybu konspektu, a także rósł, rósł i rósł ... Nawet dzisiaj
org-mode
wywodzi się z niegooutline-mode
.Tryb konspektu istnieje zarówno jako tryb główny, jak i tryb pomocniczy. Tryb podrzędny może być używany w dowolnym trybie głównym. Można go skonfigurować tak, aby używał formatu nagłówka zgodnego ze składnią programu, a robi to wiele głównych trybów, ustawiając
outline-regexp
zmienną na wyrażenie regularne pasujące do początku nagłówka. Na przykład jest to wartość domyślna w trybie Emacs Lisp:tzn. nagłówki sekcji zaczynają się od trzech lub więcej średników i pojedynczej spacji lub nawiasu otwierającego na lewym marginesie. Zmienna
outline-level
zawiera nazwę funkcji określającej głębokość nagłówka; wartością domyślną jest długość pasującego łańcuchaoutline-regexp
, a tryb Emacs Lisp zastępuje go, aby przypisać większą głębokość do(
i;;;###autoload
.Jeśli nie podoba ci się domyślny format nagłówka, ustaw zmienną
outline-regexp
w deklaracji zmiennej lokalnej pliku . Właśnie tego używam - wszystkie moje nagłówki sekcji składają się z;;;
klasycznej sekwencji gwiazd:Jeśli chcesz, aby tryb pomocniczy Zarys był włączany automatycznie podczas ładowania pliku, dodaj następujący wiersz w sekcji Zmienne lokalne - pamiętaj, że ostrzeże Cię przed niebezpiecznym kodem w Emacsie ≤23.x.
Polecenia dla trybu pomocniczego konspektu
C-c @
domyślnie używają raczej niewygodnego prefiksu. Przenoszę go doM-o
(nigdy nie używam powiązań facemenu), możesz preferować inny klucz lub replikować powiązania w trybie Org (które nieco odbiegają od trybu konspektu).źródło
Program do czytania i pisania zabiera Cię najbardziej, tryb org obsługuje go poprzez org-babel . Dwa możliwe rozwiązania zostały wyjaśnione na blogu @malabarba :
Najprostszym sposobem jest załadowanie trybu org, a następnie użycie jego funkcji rozplątywania, aby załadować skomplikowaną konfigurację Emacsa:
Alternatywnie (aby całkowicie uniknąć ładowania org), rozplątywanie można wykonać za pomocą operacji podstawowych Emacs Lisp:
źródło
Jeszcze jeden głos na tryb konspektu. Na przykład do organizacji
.emacs
używam następującej składni:ważnymi częściami są
;;;
i:\n
Oto próbka
.emacs
:Należy włączyć,
outline-minor-mode
a następnie dwa wymagane naciśnięcia klawiszy to:C-c @ C-t - pokaż strukturę najwyższego poziomu
powyższe staje się
C-c @ C-a - pokaż wszystko ponownie
Typowym zastosowaniem jest pokazanie struktury najwyższego poziomu, przejście do nagłówka zainteresowania i pokazanie wszystkiego od nowa.
źródło
#+STARTUP: overview
lubshow all
lubcontents
options.#
nie jest znakiem komentarza, więc wbudowany interpreter elisp emacsa byłby zdezorientowany, gdy uderzyłby w#+STARTUP
coś lub coś takiego. (czy też źle zrozumiałem, że skomentowałeś?)STARTUP
dyrektywy w środkuorgstruct-mode
, na przykład był to bufor R, ale ten sam pomysł: emacs.stackexchange.com/a/8065/2443W poniższej odpowiedzi SO zobaczysz, jak to zrobić, przykładowe projekty korzystające z jednego pliku organizacji lub wielu, co jest zaletą korzystania z Cask i łączy do dokumentacji.
https://stackoverflow.com/questions/25430029/whats-the-best-way-to-package-my-emacs-installation-packages-and-config-so-tha/25430745#25430745
Kilka miesięcy temu zmieniłem konfigurację na org i nie jestem z tego całkowicie zadowolony. Wymaga to trochę konfiguracji i przeczytania instrukcji org, aby mieć przydatny plik org, który ułatwia edycję kodu elisp. Należy włączyć font font bloku src (domyślnie wyłączone -> użyć zmiennej dla pliku), sprawdzić, czy inne tryby nie kolidują z edycją bloków src (tryb autouzupełniania) itp. Nie chce używać Cc
(backtick) (
org-edit-src-block`), aby edytować blok src. I to trochę przeszkadza w debugowaniu.Moja rada byłaby następująca: zacznij od rozbicia pliku init na małe elementy elisp, wypróbuj jakiś zwężający się pakiet, użyj
helm-swoop
do szybkiej nawigacji, a następnie rozważ użycieorg-mode
.źródło
Ostatnio zainwestowałem trochę czasu, aby to dokładnie zrobić. Skończyłem z konfiguracją, która - utrzymywana w trybie org - używa „use-package” do automatycznej instalacji brakujących pakietów - jest repozytorium github tego rodzaju automatycznych instalacji (bezwstydna wtyczka: https://github.com / pascalfleury / emacs-config )
„Załadowałem” kilka komputerów (Linux i Mac), klonując repo i dodając pojedynczy wiersz w ~ / .emacs et voila. Jestem skonfigurowany tak, jak lubię.
źródło