Meu .emacs
arquivo de configuração fica cada vez maior e eu gostaria de ter uma melhor visão e estrutura adicionando títulos, subtítulos e poder ocultar ou mostrá-los como eu posso fazer com o Emacs org-mode
.
Percebi que org-mode
também posso ativar o .emacs
buffer e que é possível adicionar títulos e recolhê-los. Mas o Emacs / Aquamacs ainda poderá carregar o código Elisp do documento se eu adicionar org-mode
títulos (por exemplo, linhas começando com um ou mais asteriscos)?
Eu posso ter tudo isso em um arquivo ou eu teria que ter um .*org
arquivo e, em seguida, regularmente exportar o código Elisp para outro arquivo?
fonte
org
do elpa, em vez doorg
que está disponível em um emacs limpo? Parece que opackage
código de inicialização precisaria ser extraídosettings.org
e inseridoinit.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))
Se tudo o que você deseja é exibição seletiva de seções e navegação entre títulos, não será necessário o modo Org. Tudo que você precisa é o modo de estrutura de tópicos . O modo de estrutura de tópicos é basicamente o gerenciamento de visibilidade de seção e nível de cabeçalho do modo de organização. De fato, o modo Org era originalmente as extensões do autor para o modo Contorno, e cresceu, cresceu e cresceu ... Ainda hoje
org-mode
é derivadooutline-mode
.O modo de estrutura de tópicos existe tanto no modo principal quanto no modo secundário. O modo secundário pode ser usado em qualquer modo principal. Você pode configurá-lo para usar um formato de cabeçalho compatível com a sintaxe do programa, e muitos modos principais o fazem, definindo a
outline-regexp
variável como um regexp que corresponda ao início de um cabeçalho. Por exemplo, este é o valor padrão no modo Emacs Lisp:ou seja, os cabeçalhos das seções começam com três ou mais ponto-e-vírgula e um único espaço, ou um parêntese de abertura na margem esquerda. A variável
outline-level
contém o nome de uma função para determinar a profundidade de um cabeçalho; o valor padrão é o comprimento da string correspondenteoutline-regexp
e o modo Emacs Lisp a substitui para atribuir uma profundidade maior a(
e;;;###autoload
.Se você não gostar do formato padrão do cabeçalho, defina a variável
outline-regexp
em uma declaração de variável local do arquivo . É isso que eu uso - meus cabeçalhos de seção são todos;;;
seguidos pela sequência clássica de estrelas:Se você deseja que o modo secundário de estrutura de tópicos seja ativado automaticamente ao carregar o arquivo, adicione a seguinte linha na seção Variáveis locais - observe que isso avisará sobre código não seguro no Emacs ≤23.x.
Os comandos para o modo secundário de contorno usam o
C-c @
prefixo bastante inconveniente por padrão. Eu o movo paraM-o
(nunca uso as ligações facemenu), você pode preferir outra tecla ou replicar as ligações do modo Org (que divergiram bastante do modo Estrutura de tópicos).fonte
A programação alfabética leva você ao máximo, o modo org é compatível com o org-babel . Duas soluções possíveis são explicadas no blog de @malabarba :
A maneira mais simples é carregar o modo organizacional e, em seguida, usar seu recurso de desembaraçar para carregar uma configuração alfabética do Emacs:
Como alternativa (para evitar o carregamento completo da organização), o desembaraço pode ser feito com as primitivas Emacs Lisp:
fonte
Mais um voto no modo de estrutura de tópicos. Por exemplo, para organizar,
.emacs
eu uso a seguinte sintaxe:as partes importantes são
;;;
e:\n
Aqui está uma amostra
.emacs
:Deve-se ativar
outline-minor-mode
e, em seguida, os dois pressionamentos de tecla necessários são:C-c @ C-t - mostra estrutura de nível superior
o acima se torna
C-c @ C-a - mostrar tudo de novo
Um uso típico é mostrar a estrutura de nível superior, passar para o título de interesse e mostrar tudo novamente.
fonte
#+STARTUP: overview
oushow all
oucontents
opções.#
não é um sinal de comentário, o intérprete elisp interno do emacs ficaria confuso quando atingisse#+STARTUP
ou algo assim. (ou ter eu mal você comentar?)STARTUP
interior directivaorgstruct-mode
, por exemplo, este foi um tampão de R mas a mesma ideia: emacs.stackexchange.com/a/8065/2443Na resposta SO a seguir, você verá como fazer isso, projetos de exemplo usando um único arquivo organizacional ou muitos, qual é o benefício de usar Cask e links para documentação.
https://stackoverflow.com/questions/25430029/whats-the-best-way-to-package-my-emacs-installation-packages-and-config-so-tha/25430745#25430745
Mudei minha configuração para a organização há alguns meses e não estou totalmente satisfeito com isso. Requer alguma configuração e leitura do manual organizacional para ter um arquivo organizacional útil que facilita a edição do código elisp. É necessário ativar a fonte do bloco src (desativado por padrão -> usar uma variável por arquivo), verificar se outros modos não conflitam para editar os blocos src (modo de preenchimento automático), etc. Não se deseja usar o Cc
(backtick) (
org-edit-src-block`) para editar um bloco src. E isso atrapalha um pouco a depuração.Meu conselho seria: comece quebrando seu arquivo init em pequenos pedaços de elisp, tente um pacote mais restrito, use
helm-swoop
para navegação rápida e considere usarorg-mode
.fonte
Recentemente, investi algum tempo para fazer exatamente isso. Eu terminei com uma configuração que - é mantida no modo org - usa 'use-package' para instalar automaticamente os pacotes ausentes - é um repositório do github que meio que instala automaticamente (plug descarado: https://github.com / pascalfleury / emacs-config )
Inicializei algumas máquinas (Linux e Mac) clonando o repositório e adicionando uma única linha no ~ / .emacs et voila. Estou configurado como eu gosto.
fonte