Personal config files
srustamo opened this issue · 10 comments
Readme mentions a way to handle personal config, specifically:
put your changes into ./oleh/personal/init.el
Is ./oleh relative to ~/.emacs.d
or git directory where this repo is cloned?
I changed to not include my name a while ago :).
The path should be ./personal/init.el
.
So the personal repo is ./personal/.git
.
This init.el
should end in:
(provide 'personal/init)
I assume the paths here are all relative to oremacs cloned git dir?
Still a bit confusing: the make upgrade
overwrites ./personal/init.el
with this line:
yes n | cp -i etc/init-template.el personal/init.el
Also, since ./personal is included into theload-path
here, is there really a need to provide personal/init
, and not just init
?
I assume the paths here are all relative to oremacs cloned git dir?
Yes.
Still a bit confusing: the make upgrade overwrites ./personal/init.el with this line:
It should not do that. make install
should do that and should be called only once, when setting things up for the first time.
Also, since ./personal is included into theload-path here, is there really a need to provide personal/init, and not just init?
This is to differentiate init.el
and personal/init.el
.
I'm getting File error: Cannot open load file, Not a directory, personal/init
, requiring just init
and providing init
in personal/init.el removes the error.
For me, on the most recent commit 9dacda8, make up
works and loads personal/init.el
.
Well, I'm not using this config verbatim, but cherry picking what I like.
I thought you might know a bit more about `require' function than I do.
My guess for the error I get is that ./init/personal
is included in load-path
, and since docstring for `require' says:
If FILENAME is omitted, the printname of FEATURE is used as the file
name, and ‘load’ will try to load this name appended with the suffix
‘.elc’, ‘.el’, or the system-dependent suffix for dynamic module
files, in that order. The name without appended suffix will not be
used. See ‘get-load-suffixes’ for the complete list of suffixes.
The directories in ‘load-path’ are searched when trying to find the
file name.
it looks like this "appending" of `.el' to the printname is not happening for me.
See if this improves the situation.
I already was using my-init.el
for both provide
and require
so:
(provide 'personal/my-init)
(require 'personal/my-init)
and got the File error: Cannot open load file, Not a directory, personal/my-init
error.
Sorry for confusion, I should have noted this earlier.
I'm not so sure where require
starts looking for the package: in ~/.emacs.d
or emacs-d
symbol?
I tried creating ~/.emacs.d/personal/my-init.el
but still get the above error.
Let's clarify: no Elisp files are meant to be put in ~/.emacs.d/
.
You can have your personal file in ./personal/personal-init.el
, which contains (provide 'personal-init)
.
In ./init.el
, there's (require 'personal-init nil t)
, so there will be no error if the file is not present.
Thanks.
(provide 'personal-init)
and (require 'personal-init nil t)
work.