O Emacs falha ao carregar o arquivo de configuração (.emacs)

6

Estou usando o Emacs no Ubuntu 9.04.

Eu tenho meu arquivo de configuração do emacs no diretório ~/.emacs.d .

Meu arquivo emacs é chamado de .emacs .

Eu tenho algumas configurações básicas. No entanto, quando eu inicio o emacs, ele nunca carrega minha configuração e eu tenho que continuar usando manualmente, por exemplo.

M-X Transient-mark-mode

Meu arquivo emacs está listado abaixo:

;; Emac customization file path
(add-to-list 'load-path "~/emacs.d")

;; Use font lock mode
(global-font-lock-mode t)

;; Highlight cursor line
(global-hl-line-mode t)

;; Highlight selected region
(transient-mark-mode t)

Eu quero adicionar a essa configuração em vez de adicionar entradas manualmente.

    
por ant2009 26.10.2009 / 07:05

6 respostas

13

Your init file contains personal EmacsLisp code that you want to execute when you start Emacs.

  • For GnuEmacs, it is ~/.emacs or _emacs or ~/.emacs.d/init.el.
  • For XEmacs, it is ~/.xemacs or ~/.xemacs/init.el.
    
por 26.10.2009 / 07:29
5

A resposta de Torok Gabor é o que você está procurando. Eu só gostaria de apontar um pequeno erro no seu arquivo init, deve ser

(add-to-list 'load-path "~/.emacs.d")
    
por 26.10.2009 / 07:56
4

Como Török disse, provavelmente você precisa renomear emacs para init.el .

Uma coisa que me deixou louco por um tempo é que, se o ~/.emacs existir, o emacs não carregará ~/.emacs.d/init.el . Portanto, se você tiver um ~/.emacs , exclua-o e mova seu conteúdo para o outro arquivo ou (load "~/.emacs.d/init.el") dentro de ~/.emacs .

    
por 26.10.2009 / 08:13
2

Deve-se mencionar, no entanto, que apenas o Emacs 22+ carrega ~/.emacs.d/init.el como arquivo init alternativo por usuário. Como um recurso novo, mas compatível com versões anteriores, ele prioriza ~/.emacs . Isso é organizado em lisp/startup.el .

Após a inicialização, a variável user-init-file contém o nome do caminho completo do arquivo init responsável, por exemplo. /home/me/.emacs.elc ou C:\Users\Me\.emacs.d\init.el etc. Para ver seu valor, no tipo de buffer *scratch* (insert user-init-file) seguido por C-x C-e .

O diretório ~/.emacs.d/ é, na verdade, um local padrão para arquivos adicionais por usuário. O caminho é definido pela variável user-emacs-directory do Emacs. No Windows, esse caminho depende da variável HOME (não USERPROFILE ). Quando HOME estiver definido como C:\ , por exemplo, será C:\.emacs.d . Ao executar o Emacs portavelmente, eu coloco esse comportamento usando um arquivo em lote que define HOME para um diretório no pen drive.

Não existem apenas arquivos Lisp neste diretório! Por exemplo, o recurso de salvamento automático armazena, por padrão, qualquer arquivo editado em ~/.emacs.d/auto-save-list/ (consulte a variável auto-save-list-file-prefix ). Isso me inspirou a armazenar arquivos de backup lá também:

(defvar --user-backup-directory (concat user-emacs-directory "backups"))
(if (not (file-exists-p --user-backup-directory))
    (make-directory --user-backup-directory t))
(setq backup-directory-alist '(("." . ,--user-backup-directory)))
(setq make-backup-files t)

Antes do Emacs 22 eu também tinha um diretório ~/elisp para meus arquivos Lisp pessoais. Agora eu uso

(pushnew (expand-file-name "~/.emacs.d/elisp") load-path)

como informado aqui .

Portanto, ~/.emacs.d é realmente bastante útil, embora eu ache a idéia de ~/.emacs.d/init.el questionável. O diretório ~/.emacs.d/ é um local padrão para arquivos adicionais por usuário. Não faria mais sentido quando o Emacs ler ~/.emacs.d/init.el adicionalmente para ~/.emacs.el ?

    
por 31.08.2011 / 11:04
1

Outra coisa para tentar se o que todo mundo disse não funcionar para você, é chown o arquivo .emacs e .emacs.d e o diretório.

Por alguma razão, meus .emacs e .emacs.d eram de propriedade de root e o emacs não carregava, a menos que eu fizesse sudo emacs .

Um simples sudo chown 'whoami' .emacs fez isso.

    
por 29.08.2012 / 05:13
0

Eu também tive esse problema ao mudar para um contêiner.

Descobrimos que o ambiente não estava configurado corretamente, e a variável USER e HOME ainda apontava para o usuário raiz, mesmo que eu estivesse logado como usuário ativo.

Fazer su - <username> corrigiu, porque agora o ambiente foi inicializado como esperado.

    
por 06.06.2017 / 14:38

Tags