* Elisp - Store path only once
@ 2021-01-09 10:47 wael-zwaiter
2021-01-09 10:54 ` Omar Polo
0 siblings, 1 reply; 9+ messages in thread
From: wael-zwaiter @ 2021-01-09 10:47 UTC (permalink / raw)
To: Help Gnu Emacs
I have a lot of customisation files for emacs stored in the
directory /home/bard/Genadm/build/gadin-1.0/elisp/.
Would like to store the path so that I can define it only once.
How can I do this in Emacs Lisp.
(setq g-eshell
"/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
(setq g-utils
"/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Elisp - Store path only once
2021-01-09 10:47 Elisp - Store path only once wael-zwaiter
@ 2021-01-09 10:54 ` Omar Polo
2021-01-09 11:30 ` wael-zwaiter
0 siblings, 1 reply; 9+ messages in thread
From: Omar Polo @ 2021-01-09 10:54 UTC (permalink / raw)
To: wael-zwaiter; +Cc: help-gnu-emacs
wael-zwaiter@gmx.com writes:
> I have a lot of customisation files for emacs stored in the
> directory /home/bard/Genadm/build/gadin-1.0/elisp/.
>
> Would like to store the path so that I can define it only once.
> How can I do this in Emacs Lisp.
>
>
> (setq g-eshell
> "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
>
> (setq g-utils
> "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
Couldn't you just
(add-to-list 'load-path "/home/bard/Genadm/build/gadin-1.0/elisp")
and then
(require 'g-eshell)
(require 'g-utils)
when needed?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Elisp - Store path only once
2021-01-09 10:54 ` Omar Polo
@ 2021-01-09 11:30 ` wael-zwaiter
2021-01-09 11:53 ` Omar Polo
0 siblings, 1 reply; 9+ messages in thread
From: wael-zwaiter @ 2021-01-09 11:30 UTC (permalink / raw)
To: Omar Polo; +Cc: help-gnu-emacs
Am unsure whether I can require on the elisp files I have written.
(require 'g-eshell)
(require 'g-utils)
Aw getting confused, as I was simply doing
(setq g-eshell
"/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
(setq g-utils
"/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
(load 'g-eshell)
(load 'g-utils)
> Sent: Saturday, January 09, 2021 at 10:54 PM
> From: "Omar Polo" <op@omarpolo.com>
> To: wael-zwaiter@gmx.com
> Cc: help-gnu-emacs@gnu.org
> Subject: Re: Elisp - Store path only once
>
>
> wael-zwaiter@gmx.com writes:
>
> > I have a lot of customisation files for emacs stored in the
> > directory /home/bard/Genadm/build/gadin-1.0/elisp/.
> >
> > Would like to store the path so that I can define it only once.
> > How can I do this in Emacs Lisp.
> >
> >
> > (setq g-eshell
> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
> >
> > (setq g-utils
> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
>
> Couldn't you just
>
> (add-to-list 'load-path "/home/bard/Genadm/build/gadin-1.0/elisp")
>
> and then
>
> (require 'g-eshell)
> (require 'g-utils)
>
> when needed?
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Elisp - Store path only once
2021-01-09 11:30 ` wael-zwaiter
@ 2021-01-09 11:53 ` Omar Polo
2021-01-09 12:55 ` wael-zwaiter
2021-01-09 21:34 ` Drew Adams
0 siblings, 2 replies; 9+ messages in thread
From: Omar Polo @ 2021-01-09 11:53 UTC (permalink / raw)
To: wael-zwaiter; +Cc: help-gnu-emacs
On 9 January 2021 12:30:57 CET, wael-zwaiter@gmx.com wrote:
>Am unsure whether I can require on the elisp files I have written.
>
>(require 'g-eshell)
>(require 'g-utils)
>
>Aw getting confused, as I was simply doing
>
>(setq g-eshell
> "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
>
>(setq g-utils
> "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
>
>(load 'g-eshell)
>(load 'g-utils)
>
>> Sent: Saturday, January 09, 2021 at 10:54 PM
>> From: "Omar Polo" <op@omarpolo.com>
>> To: wael-zwaiter@gmx.com
>> Cc: help-gnu-emacs@gnu.org
>> Subject: Re: Elisp - Store path only once
>>
>>
>> wael-zwaiter@gmx.com writes:
>>
>> > I have a lot of customisation files for emacs stored in the
>> > directory /home/bard/Genadm/build/gadin-1.0/elisp/.
>> >
>> > Would like to store the path so that I can define it only once.
>> > How can I do this in Emacs Lisp.
>> >
>> >
>> > (setq g-eshell
>> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
>> >
>> > (setq g-utils
>> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
>>
>> Couldn't you just
>>
>> (add-to-list 'load-path
>"/home/bard/Genadm/build/gadin-1.0/elisp")
>>
>> and then
>>
>> (require 'g-eshell)
>> (require 'g-utils)
>>
>> when needed?
>>
>>
you should definitely check the manual for more detailed information, but the gist of it is that when you
(require 'something)
emacs will search for something.el in all the directories listed in load-path. This is like the UNIX $PATH variable if you're familiar, only for elisp files instead.
Now, you can require any file, given that they contains a provide at the bottom. i.e. your g-eshell.el should ends with
(provide 'g-shell)
this way you can avoid typing the full path every time, and is also easier to move those files without braking you configuration.
(Also, require is better than load because it won't evaluate the same file two times)
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Elisp - Store path only once
2021-01-09 11:53 ` Omar Polo
@ 2021-01-09 12:55 ` wael-zwaiter
2021-01-09 17:34 ` Omar Polo
2021-01-09 21:34 ` Drew Adams
1 sibling, 1 reply; 9+ messages in thread
From: wael-zwaiter @ 2021-01-09 12:55 UTC (permalink / raw)
To: Omar Polo; +Cc: help-gnu-emacs
How can enable Rainbow Delimiters on all files (not just programming
language files)?
> Sent: Saturday, January 09, 2021 at 11:53 PM
> From: "Omar Polo" <op@omarpolo.com>
> To: wael-zwaiter@gmx.com
> Cc: help-gnu-emacs@gnu.org
> Subject: Re: Elisp - Store path only once
>
> On 9 January 2021 12:30:57 CET, wael-zwaiter@gmx.com wrote:
> >Am unsure whether I can require on the elisp files I have written.
> >
> >(require 'g-eshell)
> >(require 'g-utils)
> >
> >Aw getting confused, as I was simply doing
> >
> >(setq g-eshell
> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
> >
> >(setq g-utils
> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
> >
> >(load 'g-eshell)
> >(load 'g-utils)
> >
> >> Sent: Saturday, January 09, 2021 at 10:54 PM
> >> From: "Omar Polo" <op@omarpolo.com>
> >> To: wael-zwaiter@gmx.com
> >> Cc: help-gnu-emacs@gnu.org
> >> Subject: Re: Elisp - Store path only once
> >>
> >>
> >> wael-zwaiter@gmx.com writes:
> >>
> >> > I have a lot of customisation files for emacs stored in the
> >> > directory /home/bard/Genadm/build/gadin-1.0/elisp/.
> >> >
> >> > Would like to store the path so that I can define it only once.
> >> > How can I do this in Emacs Lisp.
> >> >
> >> >
> >> > (setq g-eshell
> >> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-eshell.el")
> >> >
> >> > (setq g-utils
> >> > "/home/bard/Genadm/build/gadin-1.0/elisp/g-utils.el")
> >>
> >> Couldn't you just
> >>
> >> (add-to-list 'load-path
> >"/home/bard/Genadm/build/gadin-1.0/elisp")
> >>
> >> and then
> >>
> >> (require 'g-eshell)
> >> (require 'g-utils)
> >>
> >> when needed?
> >>
> >>
>
> you should definitely check the manual for more detailed information, but the gist of it is that when you
>
> (require 'something)
>
> emacs will search for something.el in all the directories listed in load-path. This is like the UNIX $PATH variable if you're familiar, only for elisp files instead.
>
> Now, you can require any file, given that they contains a provide at the bottom. i.e. your g-eshell.el should ends with
>
> (provide 'g-shell)
>
> this way you can avoid typing the full path every time, and is also easier to move those files without braking you configuration.
>
> (Also, require is better than load because it won't evaluate the same file two times)
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Elisp - Store path only once
2021-01-09 11:53 ` Omar Polo
2021-01-09 12:55 ` wael-zwaiter
@ 2021-01-09 21:34 ` Drew Adams
2021-01-09 21:56 ` Stefan Monnier
1 sibling, 1 reply; 9+ messages in thread
From: Drew Adams @ 2021-01-09 21:34 UTC (permalink / raw)
To: Omar Polo, wael-zwaiter; +Cc: help-gnu-emacs
> >(load 'g-eshell)
> >(load 'g-utils)
>
> (require 'something)
There are (at least) 3 functions you can use to load a list file: `require', `load-library', and `load'.
1. `require' loads the library (*.elc or *.el) only once,
i.e., only if it hasn't yet been loaded.
2. `load-library' and `load' (also `load-file') load the
library (*.elc or *.el) unconditionally, i.e., each time.
3. `load-library' looks for a library name in your `load-path'.
`load' and `load-file expect a file name, not a library
name, but `load' does search directories in `load-path',
and `load' does try adding suffixes .elc and .el.
This is explained better than I've done here in the Emacs manual, node `Lisp Libraries' (ask Emacs).
https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Libraries.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Elisp - Store path only once
2021-01-09 21:34 ` Drew Adams
@ 2021-01-09 21:56 ` Stefan Monnier
2021-01-09 22:07 ` Drew Adams
0 siblings, 1 reply; 9+ messages in thread
From: Stefan Monnier @ 2021-01-09 21:56 UTC (permalink / raw)
To: help-gnu-emacs
>> >(load 'g-eshell)
>> >(load 'g-utils)
>> (require 'something)
> There are (at least) 3 functions you can use to load a list file: `require',
> `load-library', and `load'.
Actually `load-library` (just like `load-file`) is not meant to be used
as a function but rather as a command. Both `load-library` and
`load-file` are two commands which give interactive access to the
Lisp-level function `load`.
Stefan
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Elisp - Store path only once
2021-01-09 21:56 ` Stefan Monnier
@ 2021-01-09 22:07 ` Drew Adams
0 siblings, 0 replies; 9+ messages in thread
From: Drew Adams @ 2021-01-09 22:07 UTC (permalink / raw)
To: Stefan Monnier, help-gnu-emacs
> >> >(load 'g-eshell)
> >> >(load 'g-utils)
> >> (require 'something)
> > There are (at least) 3 functions you can use to load a list file:
> > `require', `load-library', and `load'.
>
> Actually `load-library` (just like `load-file`) is not meant to be used
> as a function but rather as a command. Both `load-library` and
> `load-file` are two commands which give interactive access to the
> Lisp-level function `load`.
Yes. (But `load-file' at least applies `expand-file-name' for you.)
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-01-09 22:07 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-09 10:47 Elisp - Store path only once wael-zwaiter
2021-01-09 10:54 ` Omar Polo
2021-01-09 11:30 ` wael-zwaiter
2021-01-09 11:53 ` Omar Polo
2021-01-09 12:55 ` wael-zwaiter
2021-01-09 17:34 ` Omar Polo
2021-01-09 21:34 ` Drew Adams
2021-01-09 21:56 ` Stefan Monnier
2021-01-09 22:07 ` Drew Adams
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.